Linux下搭建svn服务器以及配置svn钩子自动同步代码到项目目录

一、搭建SVN服务器

1、安装SVN

yum -y install subversion

2、查看是否安装成功

svn --version

3、创建版本库目录

这个版本库是svn仓库的目录,不是项目文件的目录。 我一般选择放在系统根目录下的home文件夹下

[root@VM-0-2-centos ~]# cd /home
[root@VM-0-2-centos home]# mkdir svn

4、创建新仓库

svnadmin create /home/svn/xxx (xxx为版本库的名字,我一般以项目名称命名)

5、配置修改

下面以 wxGame 仓库名字做说明

[root@VM-0-2-centos ~]# cd /home/svn/wxGame
[root@VM-0-2-centos wxGame]# ls
conf  db  format  hooks  locks  README.txt

5.1、进入conf目录

[root@VM-0-2-centos wxGame]# cd conf/
[root@VM-0-2-centos conf]# ls
authz  passwd  svnserve.conf

authz:负责账号权限的管理,控制账号是否读写权限

passwd:负责账号和密码的用户名单管理

svnserve.conf:svn服务器配置文件

5.2、修改authz文件,在文件末尾增加访问权限,增加如下图红框内的配置(记得前面一定要加[/])

  • 账号1 = rw
  • rw表示赋予此账号可读写的权限

5.3、修改passwd文件,添加账户和密码

  • 账号1 = 密码1

5.4、修改svnserve.conf(重要)

原始文件内容,都被注释掉的,我们只需要去掉如下图红框内的注释即可(注意前面一点都不能留空格)

6、启动svn服务器

如果之前已经启动则需先关闭再启动

killall svnserve  (杀掉所有svn服务的进程)
svnserve -d -r /home/svn  (启动svn服务)

7、在本地检出

svn://xxx.xx.xxx.xx/wxGame   (xxx.xx.xxx.xx为服务器的ip地址)

8、常见问题

8.1、有修改相关配置文件后,都需重启svn服务

8.2、把项目文件上传到SVN版本库后,上传的文件不再以文件原来的格式存储,而是被SVN以它自定义的格式压缩成版本库数据,存放在版本库中。

         所以下面会说明,如何把svn版本库中的文件同步更新到自己的项目文件中呢? 可以通过svn的钩子来实现自动更新

二、SVN钩子配置

所谓钩子就是与一些版本库事件触发的程序,例如新修订版本的创建,或是未版本化属性的修改。每个钩子都会被告知足够多的信息,包括那是什么事件,所操作的对象,和触发事件的用户名。通过钩子的输出或返回状态,钩子程序能让工作继续、停止或是以某种方式挂起。

我们要在svn版本库中配置钩子来实现,就是创建一个post-commit的配置文件,对其进行简单的配置,简简单单的五步就可以实现Linux下SVN自动更新到web目录配置。

1、进入钩子目录(hooks),  钩子的子目录中包含各种版本库钩子模板

[root@VM-0-2-centos wxGame]# cd hooks/
[root@VM-0-2-centos hooks]# ls
post-commit.tmpl          post-unlock.tmpl  pre-revprop-change.tmpl
post-lock.tmpl            pre-commit.tmpl   pre-unlock.tmpl
post-revprop-change.tmpl  pre-lock.tmpl     start-commit.tmpl

2、新建一个post-commit文件

[root@VM-0-2-centos hooks]# mkdir post-commit
[root@VM-0-2-centos hooks]# ls
post-commit       post-revprop-change.tmpl  pre-lock.tmpl            start-commit.tmpl
post-commit.tmpl  post-unlock.tmpl          pre-revprop-change.tmpl
post-lock.tmpl    pre-commit.tmpl           pre-unlock.tmpl

3、编辑该文件,增加以下内容(可以直接复制以下完整内容再修改)

  • DeployPath:是你的项目路径
  • SVNRepository:是svn版本库的路径
  • User:访问svn版本库的用户账号(在5.3步骤中添加过的账户
  • Password:访问svn版本库的用户密码(在5.3步骤中添加过的密码
  • svn://127.0.0.1/wxGame:wxGame是svn版本库的仓库名字
#!/bin/bash
DeployPath='/www/wwwroot/xxx'
SVNRepository='/home/svn/wxGame'

User='xxx'
Password='xxx'
export LANG='zh_CN.UTF-8'

cd $DeployPath
svn cleanup
svn checkout svn://127.0.0.1/wxGame . --username $User --password $Password
svn revert --recursive .
svn update .

4、编辑完成后 保存退出,并设置该文件的权限,权限最少要 755

[root@VM-0-2-centos hooks]# ls
post-commit       post-revprop-change.tmpl  pre-lock.tmpl            start-commit.tmpl
post-commit.tmpl  post-unlock.tmpl          pre-revprop-change.tmpl
post-lock.tmpl    pre-commit.tmpl           pre-unlock.tmpl
[root@VM-0-2-centos hooks]# chmod -R 755 post-commit

5、重启svn服务(参考步骤6)一般就可以了~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值