机会难得,继续搭SVN
1.安装subversion
sudo apt-get install subversion
2.创建项目目录
mkdir /home/svn
cd /hom/svn
mkdir svn_test_prj
chmod 777 svn_test_prj
3.建立一个版本库
svnadmin create /home/svn/svn_test_prj
4.配置用户和访问权限
cd /home/svn/svn_test_prj
cd conf
此目录下有3个文件
svnserve.conf authz passwd
svnserve.conf:svn服务配置文件,该文件版本库目录的conf目录下。
passwd:用户名口令文件,该文件名在文件svnserve.conf中指定,缺省为同目录下的。
authz:权限配置文件,该文件名也在文件svnserve.conf中指定,缺省为同目录下的。
1.修改配置文件svnserve.conf
vim svnserve.conf
取消以下四行的注释
anon-access = read
auth-access = write
password-db = password
authz-db = authz
并将anon-access = read的read改为none,禁止匿名用户访问。
2.设置passwd
设置用户及密码
例:
admin = 123456
zyw = 123456
user = 123456
3.修改权限配置文件authz
例:如果一个版本库里面有存在多个工程,则可以分别设置各个工程的访问权限
假设版本库为:svn_test_prj
则可以如下配置:
[svn_test_prj:/]
admin = rw //代表版本库的根目录只有admin用户才有读写权限,及只有admin可以删除和上传
[svn_test_prj:/prj1] //设置prj1工程的权限
admin = rw
zyw = rw //zyw可读写
user = r //user 只可读,不可修改
[svn_test_prj:/prj2]
admin = rw
zyw = r
user = rw
注:以上所说的多个工程,并非是在版本库直接创建文件,而是由admin账号先checket out 然后
import上去的工程目录,在服务器端是看不到代码文件内容的;
5.启动svnserve
svnserve -d -r /home/svn
这样启动svn则svn目录下的多个版本库都会运行,若想单独运行一个版本库,则:
svnserve -d -r /home/svn/svn_test_prj
6.客户端(windows checket out路径)
svn://192.168.255.133/svn_test_prj/
7.设置SVN开机自启动
1.创建svnd.sh
vim /etc/init.d/svnd.sh
#!/bin/bash
svnserve -d -r /data/svn
2.添加可执行权限
sudo chmod 777 /etc/init.d/svnd.sh
3.更新修改权限
update-rc.d svnd.sh defaults
注:
ubuntu 16.04中要加上以下LSB信息,不然放入启动脚本的时候会报错无法开机启动。
#!/bin/sh
### BEGIN INIT INFO
# Provides: svnd.sh
# Required-start:
localfs
remote_fs
network
syslog
# Required-Stop:
localfs
remote_fs
network
syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the svnd.sh daemon
# Description: starts svnd.sh using start-stop-daemon
### END INIT INFO
查看SVN服务 ps -e | grep svnserve