Ubuntu中安装SVN服务器

今天为大家讲解如何在Ubuntu中安装SVN(subversion)服务器,以及小结自己在安装时的一些坑,
看完本篇文章后,你应该懂得:
① 如何在Ubuntu中安装SVN服务器。
② 如何创建一个仓库。
③ 在Ubuntu中如何查看以及重启SVN服务器。

环境

为了更形象的讲解,本文使用的是VMware虚拟机安装讲解,

1
ubuntu-14.04.2

安装SVN

在Ubuntu系统中安装SVN服务器,我们使用以下命令即可

1
sudo apt-get install subversion

安装成功后,我们可以通过以下命令,检测subversion是否安装成功。

1
svn --version

效果
如上图所示,则表示安装成功,并显示为其版本号。

创建代码仓库

1
2
sudo mkdir /usr/local/java/svn   			//新建目录  这里可以修改
sudo svnadmin create /usr/local/java/svn/project

进入project目录,通过ls -lh命令查看其文件夹如下图所示:
显示目录
其中目录结构为:
conf: 保存一些配置文件,用户,用户组等,在后续会详细讲。
db: 存放uuid,write-lock等文件。
format:文本文件,存放的是当前文件库配置的版本号。
hooks: 存放hooks脚本目录。
locks: 存放的是db.lock与db-logs.lock锁文件
README.txt: 描述信息文件

配置svn访问权限

1
sudo vim /usr/local/java/svn/project/conf/svnserve.conf

将以下属性的# 注解去掉并保存

1
2
3
4
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz

修改后如下图所示:
配置信息

添加svn账户用户

svn是分为用户组,用户,用户可以通过配置来基于用户的权限,如:仅读权限,读写权限等。我们通过修改

1
sudo vim /usr/local/java/svn/project/conf/passwd

在[users]标签下添加用户,其形式为 name = password 如下图所示
用户

1
2
harry = harryssecret
sally = sallyssecret

这里harry是账号,harryssecret是密码。

设置用户权限

我们通过修改 /usr/local/java/svn/project/conf/authz文件来进行用户权限的分配

1
2
3
4
[groups]
[/]
harry = rw
sally = r

设置如下图所示
权限
我们设置用户harry为读写权限,sally用户为仅读权限,设置完成后保存即可!

关闭&重启svn服务

我们在修改配置文件后,需要重启svn服务才能生效,重启时,我们需要手动关闭掉svn服务所在的进程,操作如下:

1
2
3
ps -A | grep "svn"                     //查看svn服务所在的进程
kill svn进程号 //kill svn进程
svnserve -d -r /usr/local/java/svn //注意该路径,没有project,

展示图

导入项目到代码仓库

svn的安装以及配置基本完成,那么现在就需要导入项目到代码仓库,其语法结构为
svn import 源目录 目标目录 -m “注释”

1
svn import testproject  file:///usr/local/java/svn/project -m "初次提交"

此时我们就可以进行使用了,其url路径为:

1
2
3
svn://serverIp/project  
例如:
svn://192.168.241.130/project

常见问题

① 问题一
问题二
出现原因: 个人觉得是,因为创建版本库时,需要新增一系列文件,如果目录不存在。则会出现错误。
解决方法: 通过mkdir命令先建好目录后,再进行进入目录操作。
② 问题二:
问题二
出现原因: 暂不清楚,知道的童鞋,也可以通过留言告知。
解决办法: 如果在重启svn服务时,使用以下命令,带上project名时,在checkout时,会显示资源不存在,如截图所示
错误写法:

1
2
3
4
5
svnserve -d -r /usr/local/java/svn/project  
```
正确写法:
```
svnserve -d -r /usr/local/java/svn

③ 问题三:

问题描述: 在配置了读写权限账号的svn账号,commit代码时出现的不能提交,提示权限不够。
出现原因: 在Ubuntu中svn目录没有读写权限,导致该问题的出现。
解决方法: 我们为服务器(Ubuntu)中的svn目录进行提权操作。

1
sudo chmod -R o+rw /usr/local/java/svn

其中/usr/local/java/svn 可修改成您svn的安装路径即可。

小结

本篇文章只是简单的介绍ubuntu下安装svn,并没有详细讲解用户组,用户权限的配置,在下篇文章中,会详细的讲解用户组,用户权限的配置。