一、安装svn
终端:sudo apt-get install subversion
测试:svn –version,若显示svn的版本则说明安装成功。
二、配置svn
1. 创建仓库
终端:sudo mkdir -p /data/svndata
终端:sudo svnadmin create /data/svndata /ipc
<注>ipc为仓库名
2. 配置用户访问权限
终端:sudo vim /data/svndata /ipc /conf/svnserve.conf
svnserve.conf配置如下(注意:所有的行都必须顶格,否则报错)
[general]
anon-access = none #匿名用户权限,若为none,则无权限
auth-access = write #注册用户权限
password-db = /home/ubuntu/svnconf/passwd
#指定用户及密码文件路径,为了能让多个仓库共用一组账户,可将其
#放到一个公共位置
authz-db=/home/ubuntu/svnconf/authz #指定权限配置文件名。
3. 配置svn的用户名和密码
终端:sudo vim /home/ubuntu/svnconf/passwd
配置如下:
[users]
admin = 123456
user1 = 123456
user2 = 123456
user3 = 123456
user4 = 123456
4. 配置不同用户的路径访问权
终端:sudo vim /home/ubuntu/svnconf/authz
配置如下:
[groups]
headman= user1, admin
[ipc:/]
@headman= rw
* = r
[ipc:/user2]
user2 = rw
@headman= rw
* =
[ipc:/user3]
user3 = rw
@headman= rw
* =
[ipc:/user4]
user4 = rw
@headman= rw
* =
[ipc:/user1]
@headman= rw
* =
<注>admin和user1的权限最高,可以查看所有文件,以便对文件进行管理。
5. 启动服务器
终端:svnserve -d -r /data/svndata --listen-host 192.168.110.155 (注:此处是本机的IP)
停止SVN服务器命令为killall svnserve或者kill -9 svn的进程号
6. 设置成开机启动服务器
在/etc/init.d下面建立svnd.sh文件,内容如下:
#!/bin/bash
svnserve -d -r /data/svndata
然后执行:
终端:sudo update-rc.d svnd.sh defaults
终端:chmod 777 /etc/init.d/svnd.sh
三、在windows上 svn客户端的使用
1.Windows客户端TortoiseSVN的使用
测试选择的是TortoiseSVN 1.7.1客户端 付中文汉化包.
2.连接服务器,在桌面空白处鼠标右击,SVN 检出,会要求输入密码。
在这里可以一次测试svn账户中的5个账号,只有当admin和user1可以对svn中的所有文件尽心读写,其他账号只能对其自己文件夹下的文件进行读写,非自己的文件夹不可见时,证明权限配置正确。
四、测试
在这里选择user1和user2这两个账号进行测试。
1. user1的账号。
在桌面空白处鼠标右击,SVN检出,输入user1的账号和密码,得到ipc的文件夹,并在ipc文件夹里有所有人的文件夹和文件,在“user1”的文件夹和其他人的文件夹里分别添加文件,然后在文件夹空白处右击,TortoiseSVN->增加,最后提交,显示提交完成。再右击->SVN更新,成功将刚才上传的文件更新,说明测试成功。
2.user2的账号。
在桌面空白处鼠标右击,SVN检出,输入user2的账号和密码,得到ipc的文件夹,在ipc文件夹里只有“user2”的文件夹和文件,在“user2”的文件夹里添加文件,然后在文件夹空白处右击,TortoiseSVN->增加,最后提交,显示提交完成。再右击->SVN更新,成功将刚才上传的文件更新,说明测试成功。
经过测试可证明权限设置没问题。