服务安装

yum install -y svn
svnserve --version
svnadmin create /data/svn/repositories

创建新仓库后,会自动在仓库目录生成conf db hooks locks四个目录,以下是conf目录下的配置文件介绍

cd /data/svn/repositories/conf/
ls
authz		#权限控制文件
passwd	#用户,密码配置文件
svnserve.conf	#服务配置文件
vi authz 
	[/]		#目录名称,如果是/ 表示该仓库的所有目录的权限
	ituser = rw	#用户 = 权限	r 读, w 写,一行一个

	[/object]	#目录名称
	test = r

	[/project]
	admin = rw
	test = r
vi passwd
	ituser = passwrod		#用户名 = 密码,一行一个
	test = passwrod
	admin = passwrod
vi svnserve.conf
	[general]
	anon-access = none		#匿名访问的权限,可以是read,write,none,默认为read
	auth-access = write		#认证用户可写
	password-db = passwd	#用户认证密码文件路径,即当前目录下的passwd文件
	authz-db = authz		#用户权限文件,当前目录下的authz文件

自动发布,主要是利用hooks目录下的post-commit文件。自动发布操作,示例

cd /data/svn/repositories/hooks	
cp post-commit.tmpl post-commit
vi post-commit
	export LANG=en_US.UTF-8
	SVN_PATH=/usr/bin/svn

	BS_PATH=/var/www/html/bs/business
	$SVN_PATH update $BS_PATH --username 'user' --password '123456'
	chown -R nobody:nobody $BS_PATH
	chmod -R 775 $BS_PATH/public $BS_PATH/storage

推送到远程WEB目录,ssh需要提前设置好登录密钥,如果需要执行脚本,post-commit文件需要有执行权限

ssh -l root www.baidu.com -p 1122 "sh /var/www/html/bs/update.sh"

vi updata.sh
	svn update /var/www/html/h5/PHP.H5.business &&
	chown -R nobody:nobody /var/www/html/h5 &&
	chmod -R 775 /var/www/html/PHP.H5.business/public/

服务启动、停止

svnserve -d -r /datat/svn/repositories
killall svnserve

备份、恢复 以下命令将指定仓库备份为一个文件

svnadmin dump /svn-repos > /bakup/

将备份的文件拷到新服务器,并通过下面命令进行恢复

svnadmin create /new_path
svnadmin load /new_path/ < /bakup/svn-repos

复制原服务器的配置文件和钩子文件

cp /svn-repos/conf/* /new_path/conf/
cp /svn-repos/hooks/post-commit /new_path/hooks/post-commit

启动服务

svnserve -d -r /new_path

防火墙放行,svn默认端口:3690

firewall-cmd --permanent --add-port=3690/tcp
firewall-cmd --reload

最后更新于