Centos安装SVN服务器

请注意,本文编写于 122 天前,最后修改于 59 天前,其中某些信息可能已经过时。

简介

Apache Subversion(简称SVNsvn),一個开放源代码的版本控制系統,相较于RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。

示例

svnclient
svnclient

用于SVN客户端管理项目代码,一个项目中很多功能每次实现提交一份,方便管理,协同开发,以防错误丢失,回滚等等。

废话不多说,回到正题如何搭建一个SVN服务器呢?

系统环境:centos

第一步:通过yum命令安装svnserve,命令如下:

yum -y install subversion

此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行

若需查看svn安装位置,可以用以下命令:

rpm -ql subversion

第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)

选择在var路径下创建版本库,当前处于根目录下,一次性创建如下:

mkdir -p /root/svn/kunpeng

第三步:创建svn版本库

在第二步建立的路径基础上,创建版本库,命令如下:

svnadmin create /root/svn/kunpeng

(xxxx为你预期的版本库名称,可自定义)

创建成功后,进入xxxx目录下

cd /root/svn/kunpeng

进入目录,可以看见如下文件信息:

total 24K
drwxr-xr-x 2 root root 4.0K Sep  9 12:15 conf
drwxr-sr-x 6 root root 4.0K Sep  9 12:30 db
-r--r--r-- 1 root root    2 Sep  9 12:13 format
drwxr-xr-x 2 root root 4.0K Sep  9 12:16 hooks
drwxr-xr-x 2 root root 4.0K Sep  9 12:13 locks
-rw-r--r-- 1 root root  229 Sep  9 12:13 README.txt

第四步:配置修改

进入已经创建好的版本库目录下,也就是前文说创建的xxxx,进入conf

cd /root/svn/kunpeng/conf

conf目录下,一共存放三份重要的配置文件,如下:

total 12K
-rw-r--r-- 1 root root 1.1K Sep  9 12:14 authz
-rw-r--r-- 1 root root  337 Sep  9 12:15 passwd
-rw-r--r-- 1 root root 3.0K Sep  9 12:14 svnserve.conf

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

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

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

1.编辑 authz 文件

svnauthz
svnauthz

[/]:表示根目录,即 /svn/kunpeng

jiangpenghui = rw:表示用户luo对根目录具有读写权限。

2.编辑 passwd 文件

svnpasswd
svnpasswd

如上所示,用户名为:jiangpenghui,认证密码为:自己填

3.编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写)

svnserve
svnserve

anon-access = none:表示禁止匿名用户访问。

auth-access = write:表示授权用户拥有读写权限。

password-db = passswd:指定用户名口令文件,即 passwd 文件。

authz-db = authz:指定权限配置文件,即 authz 文件。

realm = /var/svnrepos:指定认证域,即 /var/svnrepos 目录。

第五步:防火墙开启(iptable防火墻)

多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题【注意:如果是阿里云,腾讯云的服务器,还需在安全组添加端口开启规则】

vi /etc/sysconfig/iptables

添加配置信息

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT

保存退出

service iptables restart  #重启防火墙使配置生效 ---Centos6.5
systemctl restart iptables.service #重启防火墙使配置生效---Centos7

六:启动svn服务器

svnserve -d -r /root/svn/kunpeng

启动成功后,可用ps -aux查看服务启动是否成功

ps -ef | grep 'svnserve'

img
img

第七步:开机自动启动SVN服务的方法
1、编辑rc.local文件

vi /etc/rc.d/rc.local

2、加入如下启动命令

/usr/bin/svnserve -d -r /root/svn

startsystemsvn.png
startsystemsvn.png

下期更新如何使用SVN客户端进行项目的管理

第八步:其他问题

编辑提交日志信息 TortoiseSVN提示pre-revprop-change

当我们提交完代码写日志时,已经提交了。但是,日志写错了,我们可以在日志信息里面右键点击编辑日志信息,默认情况下填完点击确定时会遇到pre-revprop-change错误
Repository has not been enabled to accept revision propchanges;
ask the administrator to create a pre-revprop-change hook
服务端操作:
服务端的操作是相当简单了,登录上服务器进入到SVN项目目录下,找到需要修改的仓库,例如kunpeng,使用如下命令操作:

cd kunpeng/hooks
cp pre-revprop-change.tmpl pre-revprop-change
chmod a+x pre-revprop-change

这样服务端就配置完成了。

客户端操作:
进入项目目录,点击鼠标右键,在右键菜单中选择TortoiseSVN→显示日志/Show log,在弹出的日志/log列表中,选中要修改的信息,右键,选择编编辑日志信息/Edit log message,在弹出的窗口中修改编辑后提交既可了。