今天为大家讲解如何在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 | sudo mkdir /usr/local/java/svn //新建目录 这里可以修改 |
进入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
4anon-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
2harry = 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
3ps -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
3svn://serverIp/project
例如:
svn://192.168.241.130/project
常见问题
① 问题一
出现原因: 个人觉得是,因为创建版本库时,需要新增一系列文件,如果目录不存在。则会出现错误。
解决方法: 通过mkdir命令先建好目录后,再进行进入目录操作。
② 问题二:
出现原因: 暂不清楚,知道的童鞋,也可以通过留言告知。
解决办法: 如果在重启svn服务时,使用以下命令,带上project名时,在checkout时,会显示资源不存在,如截图所示
错误写法:1
2
3
4
5svnserve -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,并没有详细讲解用户组,用户权限的配置,在下篇文章中,会详细的讲解用户组,用户权限的配置。