centos上svn的搭建以及遇过的问题

centos上svn的搭建以及遇过的问题

关于svn安装的文章其实已经可以找到很多,此文只是记录自己搭建过程以及当中遇到的一些问题
首先,需要安装svn,使用命令

	yum install -y subversion

如果要看是否安装成功,可以使用

	svnserve --version

如果显示出版本号,代表安装成功
接下来新建一个svn库,我这边是放在home目录下面,

	mkdir /home/svn  //如果之前已经有安装过,可跳过这个步骤,之前在之前的目录下执行即可
	svnadmin create /home/svn/project  //project为创建的代码库的名称,可自己定义,一般是和项目名称一样,方便查找

执行完命令之后进入project 文件中会生成以下文件
在这里插入图片描述
接下来是文件的配置
vi /home/svn/conf/svnserve.conf,将以下命令的注释去掉
注:去掉注释之后命令要顶格

[general]
anon-access = none  // 这个如果没加的话,客户端中的日志会显示不了
auth-access = write
password-db = passwd
auth-db = authz
realm = /home/svn/jz //svn项目的目录,这个

vi /home/svn/conf/passwd文件

[users]
harry = harry  //用户名等于密码的格式

vi /home/svn/conf/authz文件
[groups]

[/]  //记住不要漏掉
harry = rw //读写的权限

配置完之后启动svn

svnserve -d -r /home/svn/project  //如果有多个项目,建议启动目录放在上一级,也就是svnserve -d -r /home/svn
#如果已经启动svn服务,可以先关掉svn服务再重新启动
killall svnserve

启动之后找到web项目中执行下面命令

	svn checkout svn://IP(这边是写服务器的ip地址):3690 . --username=harry //记住中间有个点 如果没有点的话,文件夹的结构会不一样  --username 为执行的参数  harry是创建的账户

检出之后需要先添加文件才能commit成功,具体步骤:

	svn add . --no-ignore --force //这个是递归添加当前文件夹的所有内容,如果只添加一个文件就直接svn add + 文件名称
	添加完之后可以用
	svn ci  -m '备注' 进行提交,需要注意的是   **-m 参数一定要有,不管有没有填备注**

接下来说一下钩子的用法

	cd /home/svn/project/hooks
	#复制一份post-commit
	cp post-commit.tmpl post-commit
	#记得一定要设置一下权限,如果权限没有设置,会更新不到
	chmod -R 777 post-commit
	#打开post-commit,进行如下设置,这个是我自己的设置,可以根据自己的需要进行配置
	REPOS="$1"
	REV="$2"
	export LANG=en_US.UTF-8
	SVN_PATH=/usr/bin
	WEB_PATH=/data/www/project //web项目目录
	SVN_USER=harry //用户名
	SVN_PASS=harry //密码
	LOG_PATH=/tmp/svn.log // 日志路径
	echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
	echo `whoami`,$REPOS,$REV >> $LOG_PATH
	$SVN_PATH/svn update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATH
	exit 0

钩子文件设置好之后需要重启一下svn服务,这样执行会有个问题是svn提交的文件都会是root权限,如果需要改变这种情况,可以在post-commit 文件exit 0上一行 后加上修改项目权限的命令,如下:

	chown -R www.www $WEB_PATH &

这样由svn提交的文件就是变成是www用户的了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值