> CentOS > CentOS教程 >

Centos6.5安装subversion使用svn版本库

1、下载、解压subversion:

cd ~
wget http://apache.fayea.com/subversion/subversion-1.9.3.tar.gz
tar zxvf subversion-1.9.3.tar.gz

2、安装subversion需要sqlite的支持,所以先下载sqlite:

wget http://www.sqlite.org/snapshot/sqlite-amalgamation-201511301915.zip
unzip sqlite-amalgamation-201511301915.zip -d ~/sqlite-amalgamation
mv ~/sqlite-amalgamation ~/subversion-1.9.3
cd subversion-1.9.3

3、编译、安装subversion:

./configure --prefix=/usr/local/subversion -with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/root/apr-util-1.5.4/ --with-zlib
make && make install

4、将svn的操作命令放至/usr/bin下:

ln -f -s /usr/local/subversion/bin/svn* /usr/bin

使用svnserve --version来查看subversion的版本,如果显示的是1.9.3表示安装成功

5、为了方便以后操作,把svn的安装目录加入到环境变量:

在/etc/profile结尾加上svn的环境变量:

echo -e 'export PATH=/usr/local/subversion/bin:$PATH\n' >> /etc/profile && source /etc/profile

6、安装成功,创建版本库:

mkdir -p /svn/repos  #创建版本库目录,repos目录名可以自定义
svnadmin create /svn/repos #创建版本

7、修改版本库控制:

编辑/svn/repos/conf/svnserve.conf,内容修改为:

[general]
anon-access = none
auth-access = write
password-db = passwd  #用户密码文件
authz-db = authz  #授权登录文件

PS.所有代码前面不能用别的字符,空格也不可以。

8、添加版本库访问的用户:

编辑/svn/repos/conf/authz,添加group和用户:

[groups]
admin = test
[/]
@admin = rw
### 注意:
### * 权限配置文件中出现的用户名必须已在用户配置文件中定义。
### * 对权限配置文件的修改立即生效,不必重启svn。
### 用户组格式:
### [groups]
### = ,
### 其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
### 版本库目录格式:
### [<版本库>:/项目/目录]
### @<用户组名> = <权限>
### <用户名> = <权限>
### 其中,方框号内部分可以有多种写法:
### [/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/home/svndata,[/]就是表示对全部版本库设置权限。
### [repos:/] 表示对版本库repos设置权限;
### [repos:/abc] 表示对版本库repos中的abc项目设置权限;
### [repos:/abc/aaa] 表示对版本库repos中的abc项目的aaa目录设置权限;
### 权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。
### 权限可以是w、r、wr和空,空表示没有任何权限。

9、添加用户对应的密码:

编辑/svn/repos/conf/passwd,设置用户的密码:

[users]
test = test

这样,就设定了一个用户名和密码都是test的具有读写权限的账户。

10、启动SVN:

/usr/local/subversion/bin/svnserve -d --listen-port 8888 -r /svn
###-d :表示以daemon方式(后台运行)运行;
###--listen-port 9999 :表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限;
###-r /home/svndata :指定根目录是/svn

11、将SVN添加到开机启动:

echo -e '/usr/local/subversion/bin/svnserve -d --listen-port 8888 -r /svn\n' >> /etc/rc.local

如果想要停止SVN,可用以下命令:

killall svnserve

客户端使用svn导出、上传这些就不在此记录了,如果需要将别的svn版本库导入到新的svn版本库中,需要进行如下操作:

2.1、将需要移动的版本库完整地导出为一个单独文件:

svnadmin dump local_old_repositories_path > dumpfile_path

PS.导出来的文件是二进制格式,一般的非二进制处理方式的文档编辑器打开、保存后,会破坏格式,导致后续导入时某些提交校验出错。如果仅是完整移动版本库,则不需要编辑dump文件,直接在后面load导入即可。但是想修改其中的字段,建议使用WinHex以16进制方式编辑。

2.2、重新创建一个新的版本库:

svnadmin create new_repositories_path

2.3、将之前的dump文件导入到新的版本库:

svnadmin load new_repositories_path < dumpfile_path

2.4、其他操作

svndumpfilter
该命令用于过滤dump文件中的某些文件夹,以得到所需要的工程文件。在我们当前版本库中还不需要这个操作。
经以上操作,已将旧版本库导入到新版本库的目录下。经对比验证,新库跟旧版本库工程内容完全一致,操作成功!
(责任编辑:IT)