SVN搭建与迁移

旧城冷巷雨未停 提交于 2020-03-30 21:54:02

系统:centos6.5

安装过程:

yum install -y subversion #yum在线安装

依赖如下:
apr.x86_64 0:1.3.9-5.el6_2
apr-util.x86_64 0:1.3.9-3.el6_0.1
neon.x86_64 0:0.29.3-3.el6_4
pakchois.x86_64 0:0.4-3.2.el6

安装好之后查看svn版本
svnserve --version #查看是否安装好svn

配置SVN

mkdir /home/svn/game -p                                        #创建仓库目录
svnadmin create /home/svn/game                           #创建项目
svnadmin  delete  /home/svn/game                             #删除一个完整的项目
ls /home/svn/game/                       #检查是否创建成功,若成功,该目录下回多出几个文件夹
ls /home/svn/game/conf                #该目录下有三个配置文件authz  passwd  svnserve.conf
authz                                     #用户权限
passwd                                  #用户密码
svnserve.conf                        #svn配置文件

vi authz                                  #编辑用户权限
[groups]
server=svn1,svn2           
client=client1,client2
[game:/server]
@server=rw
[game:/client]
@client=rw
@server=rw
vi passwd                                 #创建用户及密码
[users]
svn1=123456
svn2=123456
client1=123456
client2=123456
vi svnserve.conf 
anon-access = none          #匿名访问者权限
auth-access = write               #验证用户权限
password-db = /home/svn/game/passwd   #密码文件地址
authz-db = /home/svn/game/authz       #权限文件地址
realm =game             #项目名称

防火墙开放端口:

iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
/etc/rc.d/init.d/iptables save
service iptables restart

启动和关闭svn:

svnserve -d -r /home/svn      #-d守护进程,-r:svn根目录
vi /etc/rc.d/rc.local                          #加入开机启动
/usr/bin/svnserve -d -r /home/svn/            #启动svn
killall svnserve                              #关闭svn

svn客户端操作
windows平台
svn://192.168.99.146/game
checkout
在game下新建server和client目录
右键add选中server和client目录
右键svn update
右键svn commit

linux平台:

svn checkout -r path 
svn checkout svn://192.168.1.1/pro/domain               #svn checkout 简写 svn  co

svn update   #将当前目录及子目录更新到最新版本  简写 svn up 

svn update -r 200 test.php   #将当前目录及子目录中的文件test.php,回退到版本200
svn update test.php         #更新 test.php  与版本库同步

svn备份

svnadmin dump方式
svnadmin dump (/repository/directory) > dumpfile        #将原来的Repository导出为一个文件dumpfile

在另外一台机器上配置同样的SVN服务器。
svnadmin load (/repository/directory) < dumpfile         # 将dumpfile导入到新的repository 目录中

/opt/svn/iitshare/conf目录下                               # 将原先服务器的配置文件备份后复制到新服务器中
authz、passwd、svnserve.conf文件

svn强制log

SVN Server在每个仓库中的hooks里都有个pre-commit.tmpl文件,修改这个文件为pre-commit并添加可执行权限:chmod +x pre-commit
pre-commit文件内容如下:

vim pre-commit


REPOS="$1" 
TXN="$2"

# Make sure that the log message contains some text. 
SVNLOOK=/usr/bin/svnlook 
LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`

if [ "$LOGMSG" -lt 10 ];   #如果logmsg少于10字节
then                    
echo -e "Empty log message not allowed. Commit aborted!" 1>&2      #回显警告内容
exit 1 
fi

# All checks passed, so allow the commit. 
exit 0
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!