centos下svn的配置

  • 内容
  • 评论
  • 相关

相信很多同学都是用过cvs、svn等版本控制工具,现在cvs已经逐渐的被svn替代,今天我们就简单的说一下centos下面subversion的搭建。
首先,centos下默认会安装subversion,你可以通过这条命令来查看subversion是否安装

rpm -qa | grep subversion

如果安装了,则会列出已经安装的subversion的版本信息。
如果没有安装则可以yum安装

yum -y install subversion

安装之后,我们则需要开始搭建你的repository,也就是你的版本仓库。

mkdir /data/svn/repos1
svnadmin create /data/svn/repos1

建立完仓库之后,我们进入配置文件文件夹

cd /data/svn/repos1/conf/

编辑配置文件

vim svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
#如果出现错误将下一行屏蔽
#authz-db = authz
realm = repos1

再编辑用户文件

vim passwd

在下面加入

username = password

继续编辑权限文件

vim authz

//创建一个名为svn的组,加入用户username

svn = username1,username2
//制定根目录下的权限
[/]
//svn用户组为读写
@svn = rw
* = r

启动我们的版本服务

svnserve -d -r /data/svn

也可以自己定义端口

svnserve -d -r /data/svn --listen-port 3690

如果要定义多个版本库,需要修改端口。
可以自行查看svn的运行状况

ps aux | grep svnserve

然后,就可以本地checkout版本了,地址为svn://ip/repos1

关掉svn服务

killall svnserve

如果你要建立多个仓库这样做即可

mkdir -p /data/svn/repos1
mkdir -p /data/svn/repos2
svnadmin create /data/svn/repos1
svnadmin create /data/svn/repos2

然后分别去各个仓库的conf文件夹下面编辑相关文件即可,然后再启动svn服务:

svnserve -d -r /data/svn/

那么checkout的地址为:

svn://ip/repos1
svn://ip/repos2

在这里还有个问题就是svn提交的时候将代码自动同步到网站目录下,例如你的其中一个仓库的地址为/data/svn/repos1,你希望你在svn提交到这个仓库的时候将代码自动同步到/data/apps/web/tencent/,这个时候我们需要用到钩子脚本,进入到这个目录

cd /data/svn/repos1/hooks
cp post-commit.tmpl post-commit

然后

chmod u+x post-commit

然后在post-commit脚本中加入

export LC_CTYPE=en_US.UTF-8
svn update /data/apps/web/tencent --username gaoxueping --password 123456

在使用这个脚本之前,你首先要在你的网站目录下checkout一下,

cd data/apps/web/
svn checkout svn://ip/tencent

这样你每次提交的时候都会自动同步到你的目标文件件。

评论

0条评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注