1、首先安装SVN这个软件
sudo apt-get install subversion
2、在lankou用户的home目录下创建一个名为svn的文件夹(文件夹的名字随便起)
mkdir /home/lankou/svn
(也可以sudo mkdir /home/svn,此时svn文件夹的所有者是root)
3、创建数据仓库(可以根据需要创建多个)
svnadmin create /home/lankou/svn/test-repo
这个test-repo就是存放项目的仓库了
4、启动svn网络服务
svnserve -d -r /home/lankou/svn
其中:
-d 参数让 svnserve 运行在后台;
-r 参数限定了数据仓库,在网络上可以访问的地址。
/home/lankou/svn 指定svn数据仓库存放的目录位置,这时该目录是svn的根目录
5、设置svn: 方式的访问权限
在每个数据仓库目录下都有一堆目录,其中conf 存放的配置文件,
hooks下的钩子程序用于同步仓库的代码到工作副本(www),很方便测试,这块后文会有讲述。
Ubuntu下搭建SVN服务器(Subversion)
authz 用于配置账号对项目乃至于项目下各部分文件夹的权限,注意指定无法细到某个文件
passwd 配置账号和密码
svnserve.conf是svn服务的功能权限配置
进入 conf 并打开 svnserve.conf 这个文件,找到以下几行,
并把前面的注解符号 ‘#’ 去掉,注意千万在每行的前面别留任何空格。
anon-access = read
auth-access = write
password-db = passwd
Ubuntu下搭建SVN服务器(Subversion)
其中 anon-access 和 auth-access 分别为匿名和有权限用户的权限,默认给匿名用户只读的权限。
但如果想拒绝匿名用户的访问,只需把 anon-access的read 改成 none 就能达到目的。
password-db 后的 passwd 则为定义用户名及密码的文件路径。这个文件默认跟 snvserve.conf 在
同一个目录,下面看看怎么配置 passwd文件中的内容。
[user]
# harry = harryssecret
# sally = sallyssecret
harry 和 sally 这两行分别定义了可以对 repo 进行写入的用户的用户名和密码。我们可以在下面加上
自己的用户名和密码,比如:svn = 123456
Ubuntu下搭建SVN服务器(Subversion)
这样就给了 账号svn 往 repo 中写的权限。注意,这里的账号svn并不是系统用户!
而是你commit和checkout代码时需要的用户名和密码,并且可以随意定义。
存盘退出后,svn 服务器就算正式可以运行了!
把所有需要管理的项目都放在 /home/lankou/svn这个目录下,像正常那样用 svnadmin create 命令建立数据仓库。
这样就可以使用svn客户端通过 “svn co svn://IP地址/数据仓库目录” 的方式把服务器上的数据仓库拉到本地了。
不过我一般使用TortoiseSVN客户端。
备注:本文很大程度参考了http://blog.163.com/liu_wen_xin123/blog/static/112248632201412285556662/,只是结合我的实际操作多做一些解释。