您的位置:首页 > 运维架构 > Linux

Linux(CentOS)+SVN服务器,并实现本地提交后,服务器端自动更新

2016-08-05 15:39 633 查看
自动安装Subversion
yum -y install subversion

查看安装路径等信息
rpm -ql subversion

查看svn帮助信息
svn help

创建svn版本库目录
mkdir -p /opt/svn/svnrepos

创建版本库
svnadmin create /opt/svn/svnrepos

进入/opt/svn/svnrepos目录下的conf
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件

设置账号密码
vim passwd

在[users]块中添加用户名和密码:账号=密码,例如username=password

设置权限
vim authz

在末尾处添加如下代码:

[/]

username=rw

someone=r

表示在版本库的根目录下,username用户有读写权限,someone用户只有读的权限

修改svnserve.conf
取消下面的注释

anon-access = read #匿名用户可以读

auth-access = write #授权用户可以写

password-db = passwd #使用passwd作为账号文件

authz-db = authz #使用authz作为权限文件

realm = /opt/svn/svnrepos # 版本库所在的目录

启动svn版本库
svnserve -d -r /opt/svn/svnrepos

-d 指在后台运行,-r 指在根目录 /opt/svn/svnrepos

netstat -anp

查看svn默认端口号是3690

在window上测试
下载svn,checkout,填写svn地址:svn://your ip (注意此处是svn://,若使用http://需使用Apache服务器)

账号为上面设置的username,密码为上面设置的password (在passwd文件中的)

如果不能外网访问则可能需要Linux服务器上防火墙对3690端口的设置

到此svn服务器搭建完成。

在Linux上测试
将svn checkout到Linux上,直接在/opt/svnapp目录下执行:svn checkout svn://yourip /opt/svnapp

在window上开发的程序,通过svn commit,在Linux的/opt/svnapp下自动完成更新
1.在svn版本库目录/opt/svn/svnrepos下,打开hooks ,然后cp post-commit.tmpl post-commit创建post-commit文件

2.vim post-commit 写:

REPOS="$1"

REV="$2"

WEB=/opt/svnapp #需要同步更新的目录

mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf

svn update $WEB --username username--password password--no-auth-cache

3.让post-commit有执行的权限:chmod 777 post-commit

4.配置完成,然后测试,查看。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  svn centos