文章目录
测试svn是否可用
设置svn随机重启
安装svn
代码库创建
配置代码库
权限控制authz配置
服务svnserve.conf配置
启动SVN
查看SVN进程
检测SVN 端口
停止SVN
设置钩子自动更新
安装svn
1、检查是否安装过svn
rpm -qa subversion
2、如需要卸载旧版本svn
yum remove subversion
3、安装新版本svn
yum install subversion
4、检验已经安装的SVN版本信息
svnserve --version
代码库创建
mkdir -p /home/svn
svnadmin create /home/svn/test
注:可以用svnadmin create
/home/svn/名称创建多个版本库,在客户端访问的时候可以用svn://0.0.0.0/名称 来访问
配置代码库
进入上面生成的文件夹conf下,进行配置
cd /home/svn/test/conf
用户密码passwd配置
vi passwd
在里面配置svn账号和密码(按下键盘A可以编辑,编辑完了按esc退出。在输入:wq保存,不想保存的话输入:q!)
[users]
test=123456
权限控制AUTHZ配置
vi authz
配置上用户组,然后给用户组附权限
[groups]
user=test
[/]
@user=rw
注:
1、@user=rw,r=读、w=写
2、多个用户之间用,隔开例如user=test,zs;如果需要限定文件夹则需要
[文件夹名称:/]
@user=rw
服务SVNSERVE.CONF配置
vi svnserve.conf
最下面写入信息([general]的最下面,或者在对应的位置去掉注释)
anon-access = none #匿名访问的权限,可以是read,write,none,默认为read
auth-access = write #使授权用户有写权限
password-db = passwd #密码数据库的路径
authz-db = authz #访问控制文件
realm = ceshi #认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
启动SVN
/usr/bin/svnserve -d -r /home/svn/
查看SVN进程
ps aux |grep 'svn'
下面表示已启动
root 27082 0.0 0.0 162184 660 ? Ss 15:24 0:00 /usr/bin/svnserve -d -r /home/svn/
检测SVN 端口
netstat -ln |grep 3690
停止SVN
killall svnserve
测试svn是否可用
默认客户机上已安装tortoiseSVN
新建一个文件夹,右键文件夹(svn检出),在版本库URL输入
svn://192.168.10.181/test //根据个人ip地址而定
然后确定,输入之前在passwd输入的账号和密码
test
123456
完成
设置svn随机重启
vi /etc/profile
最下面倒数第二行 unset
i上面添加
/usr/bin/svnserve -d -r /home/svn/
设置钩子自动更新
在hooks下创建一个post-commit的配置文件,给他可执行权限
cd /home/svn/test/hooks/
新建打开post-commit
vi post-commit
写入内容
#!/bin/sh
export LANG=en_US.UTF-8
SVN=/usr/bin/svn #这里配置的是svn安装bin目录下的svn文件
WEB=/home/wwwroot/test #要更新的目录
echo "Code Deployed By at $CURDATE" >> /home/svn/test/hooks/code_deploy_log
$SVN update $WEB --username test --password 123456 >> /home/svn/test/hooks/code_deploy_log
chown -R www:www $WEB
设置可执行权限
chmod a+x post-commit
创建要更新的目录
cd /home/wwwroot/
svn checkout svn://192.168.10.181/test
会让你输入root密码、svn账号和密码,然后在本机更新一个文件试试
如果看到下面报错
post-commit hook failed (exit code 255) with no output.
说明post-commit没有可执行权限,添加下权限,记得重启下svn
chmod a+x post-commit
killall svnserve
/usr/bin/svnserve -d -r /home/svn/