cd ~
wget http://apache.fayea.com/subversion/subversion-1.9.3.tar.gz
tar zxvf subversion-1.9.3.tar.gz
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
./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
/usr/bin
下:
ln -f -s /usr/local/subversion/bin/svn* /usr/bin
使用svnserve --version
来查看subversion的版本,如果显示的是1.9.3表示安装成功
在/etc/profile
结尾加上svn的环境变量:
echo -e 'export PATH=/usr/local/subversion/bin:$PATH\n' >> /etc/profile && source /etc/profile
mkdir -p /svn/repos #创建版本库目录,repos目录名可以自定义
svnadmin create /svn/repos #创建版本
编辑/svn/repos/conf/svnserve.conf
,内容修改为:
[general]
anon-access = none
auth-access = write
password-db = passwd #用户密码文件
authz-db = authz #授权登录文件
PS.所有代码前面不能用别的字符,空格也不可以。
编辑/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和空,空表示没有任何权限。
编辑/svn/repos/conf/passwd
,设置用户的密码:
[users]
test = test
这样,就设定了一个用户名和密码都是test的具有读写权限的账户。
/usr/local/subversion/bin/svnserve -d --listen-port 8888 -r /svn
###-d :表示以daemon方式(后台运行)运行;
###--listen-port 9999 :表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限;
###-r /home/svndata :指定根目录是/svn
echo -e &#39;/usr/local/subversion/bin/svnserve -d --listen-port 8888 -r /svn\n&#39; >> /etc/rc.local
如果想要停止SVN,可用以下命令:
killall svnserve
客户端使用svn导出、上传这些就不在此记录了,如果需要将别的svn版本库导入到新的svn版本库中,需要进行如下操作:
svnadmin dump local_old_repositories_path > dumpfile_path
PS.导出来的文件是二进制格式,一般的非二进制处理方式的文档编辑器打开、保存后,会破坏格式,导致后续导入时某些提交校验出错。如果仅是完整移动版本库,则不需要编辑dump文件,直接在后面load导入即可。但是想修改其中的字段,建议使用WinHex以16进制方式编辑。
svnadmin create new_repositories_path
svnadmin load new_repositories_path
svndumpfilter
该命令用于过滤dump文件中的某些文件夹,以得到所需要的工程文件。在我们当前版本库中还不需要这个操作。
经以上操作,已将旧版本库导入到新版本库的目录下。经对比验证,新库跟旧版本库工程内容完全一致,操作成功!