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

来源:互联网 发布:ubuntu如何卸载jdk 编辑:程序博客网 时间:2024/05/23 14:39
  • 自动安装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.配置完成,然后测试,查看。





1 0
原创粉丝点击