虚拟机上的svn配置
1、下载svn yum -y install subversion
2、创建版本库目录 //一开始在这里的理解上出了问题,一直以为这个是服务器端的目录,其实不然 mkdir /var/svn
3、启动svn svnserve -d -r /var/svn
4、创建版本库 svnadmin create /var/svn/kaoqin
5、配置版本库
进入conf配置文件
(1)passwd
配置用户和密码
# harry = harryssecret #用户名 = 密码
# sally = sallyssecret #用户名 = 密码
wang = 123456 //任意设置
(2)authz 用户的权限设置
# [/foo/bar] // [/] 版本库跟目录 [immoc:/] 名为immoc版本库 权限只适用名称为immoc版本库 [immoc:/xxx] 权限只适用名为immoc版本库xxx文件目录
# harry = rw // harry 有读写权限
# &joe = r // &joe 有写权限
# * = // 所有人 都没有权限的意思
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
分组
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
*= 说明除了harry_and_sally 外 其他人没有权限
(3) svnserve.conf
# anon-access = read //定义非授权用的的访问权限,有三种 none read write 设置none 限制访问,read只读,write具有读写
# auth-access = write //定义授权用户的访问权限,有三种 none read write 同理
# password-db = passwd //定义保存用户和密码的文件名称 即 同目录下的 passwd 文件
# authz-db = authz //定义保存授权信息的文件名称 即 同目录下的 authz 文件
# realm = My First Repository //定义客户端连接时的“认证命名空间”,subversion会在认证提示里显示,并且作为凭证缓存的关键字
*************************以上内容为配置信息****************************
一、在Apache目录下checkout这个项目,并设置自动更新
先
先
cd /var/www
,之后checkout一下 svn co svn://******/kaoqin
这样就可以checkout下来又不包含原目录名。 二、接着可以测试一下是否能正常访问,可以在windows下面checkout 然后commit代码进行测试。这里可能还有一个问题,因为Apache的默认访问地址是/var/www/html,所以要改下配置
找到 DocumentRoot “/var/www/html”,把这个目录改成”/var/www/”
之后别忘了把/var/www/这个目录的权限改下
然后重启下Apache,
vi /etc/httpd/conf/httpd.conf
找到 DocumentRoot “/var/www/html”,把这个目录改成”/var/www/”
之后别忘了把/var/www/这个目录的权限改下
chmod -R 755 /var/www/
然后重启下Apache,
service httpd restart
三、做完这些就剩下设置自动更新了。 也可以新建一个post-commit文件进行配置
然后
cd /var/svn/kaoqin/hooks
mv post-commit.tmpl post-commit
然后
vim post-commit
然后记得让post-commit有执行的权限 chmod 777 post-commit
#!/bin/sh # # # REPOS="$1" REV="$2" export LANG=zh_CN.UTF-8 SVN=/usr/bin/svn #这里配置的是svn安装bin目录下的svn文件 WEB=/var/www/html/test #要更新的目录 $SVN update $WEB --username xxx --password xxx (此版本是linux下,windows下是.bat,写法少有不同,测试了下用一个账号密码配置好后其它的账号也可以使用自动更新)
一些常用的svn命令,
killall svnserve 关闭服务,ps -aux | grep svn 查看状态