前言
SVN
是什么?虽然大家每天都在用,但是很少人知道它到底有什么用。它是版本控制工具,也可以说是一个备份服务器,记录每次代码变更的详情,并且有效的防止了团队之间代码不统一的情况。Ubuntu
中安装它是比较简单的,接下来我们开始安装。
开始安装
1、安装软件包
wenjie@rain:~$ sudo apt-get install subversion
2、创建我们需要存放的仓库目录
wenjie@rain:/home$ sudo mkdir svn
3、创建svn仓库文件夹
wenjie@rain:/home$ cd svn/
wenjie@rain:/home/svn$ sudo mkdir project_v1
4、创建版本仓库
wenjie@rain:/home/svn$ cd project_v1/
wenjie@rain:/home/svn/project_v1$ sudo svnadmin create /home/svn/project_v1/
5、我们来看下project_v1文件结构
wenjie@rain:/home/svn/project_v1$ ll
total 32
drwxr-xr-x 6 root root 4096 Feb 23 15:41 ./
drwxr-xr-x 3 root root 4096 Feb 23 15:41 ../
drwxr-xr-x 2 root root 4096 Feb 23 15:41 conf/
drwxr-sr-x 6 root root 4096 Feb 23 15:41 db/
-r--r--r-- 1 root root 2 Feb 23 15:41 format
drwxr-xr-x 2 root root 4096 Feb 23 15:41 hooks/
drwxr-xr-x 2 root root 4096 Feb 23 15:41 locks/
-rw-r--r-- 1 root root 246 Feb 23 15:41 README.txt
6、我们需要更改conf目录中的三个文件
wenjie@rain:/home/svn/project_v1$ cd conf/
wenjie@rain:/home/svn/project_v1/conf$ ll
total 24
drwxr-xr-x 2 root root 4096 Feb 23 15:41 ./
drwxr-xr-x 6 root root 4096 Feb 23 15:41 ../
-rw-r--r-- 1 root root 1080 Feb 23 15:41 authz
-rw-r--r-- 1 root root 885 Feb 23 15:41 hooks-env.tmpl
-rw-r--r-- 1 root root 309 Feb 23 15:41 passwd
-rw-r--r-- 1 root root 4002 Feb 23 15:41 svnserve.conf
authz
:用来设置用户权限passwd
:用来存储设置用户以及密码svnserve.conf
:主配置文件
7、配置主配置文件
wenjie@rain:/home/svn/project_v1/conf$ sudo vi svnserve.conf
将下列属性前面的#
去掉,注意:前面不能有空格。
anon-access = read
:匿名访问权限,默认read,none为不允许访问auth-access = write
:认证用户的权限password-db = passwd
:用户信息存放文件,默认在版本库/conf下面,也可以绝对路径指定文件位置authz-db = authz
:权限信息存放文件。
8、设置用户名以及密码
wenjie@rain:/home/svn/project_v1/conf$ sudo vi passwd
格式为:用户名=密码
,采用明文密码。
[users]
zhangsan=123
lisi=456
wangwu=789
9、设置用户权限
wenjie@rain:/home/svn/project_v1/conf$ sudo vi authz
用户权限可以设置用户组,或者单个用户设置。
[groups]
raiing=zhangsan,wangwu
[/]
@raiing=r
lisi=rw
*=
- 要点一:
groups
下面可以设置用户组,方便对多个用户设置管理权限,并且设置时用户组前要加@
。 - 要点二:当然也单独对单个用户设置权限,比如上例中的lisi
- 要点三:
*=
代表是其他用户禁止操作的意思。
10、启动SVN服务器
接下来我们开启svn服务器
wenjie@rain:/home/svn/project_v1/conf$ sudo svnserve -d -r /home/svn/
-d
:以守护模式启动-r
:制定svn
版本库根目录 这样是便于客户端不用输入全路径 就可以访问版本库了
- 例如:
svn://127.0.0.1/project_v1
- 例如:
查看svn是否启动成功
wenjie@rain:/home/svn/project_v1/conf$ sudo netstat -antp |grep svnserve
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 3785/svnserve
如果想关闭服务,可使用pkill svnserve