CentOS下SVN的配置

在终端运行svn命令.如果没有安装,系统会提示安装

1.首先需要安装Subversion软件:

sudo apt-get install subversion

2.建立一个文件夹作为版本库的根目录

mkdir /var/svnroot/

这个目录本身不是版本库,只是拿来装版本库的目录

3.进入这个目录,创建版本库

cd /var/svnroot/
svnadmin create mysvn

以后如果有多个项目,可以继续在/var/svnroot/下面create新的版本库

4.配置vlink

cd /var/svnroot/vlink/conf/
ls

将会看到以下文件

authz passwd svnserve.conf

首先编辑 svnserve.conf

vim svnserve.conf

其中 anon-access 表示 匿名用户的权限,auth-access 表示经过认证的用户的权限。去掉前面的#注释,顶格写。一般说来像这样就可以了:

anon-access = none
auth-access = write

然后看到下面有 password-db 这个配置项。 这个是配置使用的密码文件。

password-db = passwd

为了以后多个版本库同时运行,建议改这个文件到 /var/svnroot/下面。比如: /var/svnroot/passed

password-db =/var/svnroot/passed

同理,authz-db这个也是,像这样:

/var/svnroot/authz

然后有个东西叫做realm,这个貌似是连接svn服务器的时候的提示句子。。不过设置成vlink的名字肯定没错。比如 vlink

realm = vlink

其他的不管。保存退出。

5.编辑 /var/svnroot/passwd 这个简单,像这样就可以了:

[users]
username=password
username=password

6.启动svnserve

sudo svnserve -d -r /var/svnroot/

-r 后面的参数是svnroot位置,而不是某个版本库的位置 要关闭svnserve可以直接用 kill 结束掉那个进程

7.Configure iptables 如果服务器上设置了iptables的话,你需要开启3690端口.

iptables -A INPUT -p tcp -i eth0 --dport 3690 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i eth0 --dport 3690 -j ACCEPT

查看ipatbles: iptables -L 如果出现下面一行表示设置成功了:

… ACCEPT tcp – anywhere anywhere tcp dpt:svn

8.测试 在本地 svn co svn://xxx.xxx.xxx.xxx/vlink –username xxx –password xxx 如果还有问题的我建议是将svnserve.conf文件中的有关authz注释掉,在测试。 我做的时候是有上面的问题,后来师兄注释掉后就好了,具体我也不明白什么原因 如何将想要的svn库中文件备份导出和导入呢(这里我没有测试过,大家可以测试一下,我们共同探讨)

9.将原来的Repository导出为一个文件dumpfile

svnadmin dump path/to/old-repo > dumpfile.svn

10.将dumpfile导入到新的Repository

svnadmin load path/to/new-repo < dumpfile.svn

11.本机svn的快速迁移方法:

svnadmin hotcopy old_rep_path new_rep_path

12.将原先服务器的配置文件备份后复制到新服务器中 /etc/httpd/conf.d/subversion.conf 还有repository目录下的authfile、auth.conf也需要备份后复制到新服务器中

13.linux下重新定位SVN URL方法: 如果更换了SVN服务器,就需要重新定位,指向新的SVN URL。 重新定位命令:svn switch --relocate 原svn地址 新svn地址 如何查看原svn地址? 查看原svn路径方法:svn info