安装
yum install -y subversion
验证
svnserve --version
whereis svnserve
创建多版本库
- 创建目录+初始化版本库
mkdir -p /data/svn
cd /data/svn
## 版本库1
mkdir svn_1
svnadmin create svn_1
## 版本库2
mkdir svn_2
svnadmin create svn_2
- 权限管理
在每个版本库下面都有一个conf文件夹
[root@server conf]# ls -l svn_1/conf
总用量 12
-rw-r--r--. 1 root root 1080 4月 28 14:31 authz
-rw-r--r--. 1 root root 309 4月 28 14:31 passwd
-rw-r--r--. 1 root root 2283 4月 28 14:32 svnserve.conf
## passwd是密码文件
## authz是权限文件
## svnserve.conf是本版本库的配置文件
使用一个密码文件和权限文件管理所有版本库
cp svn_1/conf/passwd passwd
cp svn_1/conf/authz authz
使用svn目录下的passwd和authz文件管理所有版本库
## 修改各个版本库的配置文件
vim /svn_1/conf/svnserve.conf
## 不允许匿名
anon-access = none
auth-access = write
## 密码文件位置
password-db = ../../passwd
## 权限文件位置
authz-db = ../../authz
## 添加用户名, 密码
vim /data/svn/passwd
admin = 123456
user = 123456
noauthz = 123456
## 权限配置
vim /data/svn/authz
[groups]
g_admin = admin
g_user = user
[svn_1:/]
@g_admin = rw
[svn_1:/user]
@g_user = rw
[svn_1:/user/noauthz]
noauthz =
权限使用自底而上的方式进行控制,如果在当前目录下无法找到该用户的权限, 则查看上一级目录是否有权限
,直到根目录位置,例如上例:
- 查看user用户的权限
1. 在访问noauthz目录时,没有user的权限配置,向上一级查看
2. 在user目录由user用户的权限配置,是读写, 因此,user用户具有noauthz目录的权限;
- 查看nozuthz用户的权限
1. 访问noauthz目录, noauthz没有读写该文件的权限,所以noauthz用户没有noauthz目录权限;
启动
svnserve -d -r /data/svn
-d 后台运行
-r svn的根目录
开机启动
chkconfig --list | grep svnserve
svnserve 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
chkconfig svnserve on
svnserve 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
查看在/etc/init.d/svnserve的启动脚本文件,有如下代码:
if [ -f /etc/sysconfig/svnserve ]; then
. /etc/sysconfig/svnserve
fi
## 增加配置文件
touch /etc/sysconfig/svnserve
## 增加内容
OPTIONS="-r /data/svn/"
## 这样下次开机就可以自动启动svn服务器了
小技巧
- ip改变后,修改svn地址
svn switch --relocate svn://192.168.0.253/xxx svn://192.168.0.100/xxx --username xxx --password xxx
HTTP支持
svnsverve和http使用不同的密码文件
安装
## apr,apr-util很关键
yum install httpd apr apr-util httpd-devel
yum install mod_dav_svn
修改权限
chown apache:apache /data/svn -R
生成密码
cd /data/svn
htpasswd http_passwd zm1
htpasswd http_passwd zm2
htpasswd http_passwd zm3
配置
## vim /etc/httpd/conf.d/subversion.conf
DAV svn
SVNParentPath /data/svn
AuthType Basic
AuthName "Authorization SVN"
AuthzSVNAccessFile /data/svn/authz
AuthUserFile /data/svn/http_passwd
Require valid-user
重启
service httpd restart
SVN+SSH
客户端设置
-
设置
->Network
->ssh client
->TortoisePlink.exe
; - 下载
putty
, 使用PUTTYGEN.EXE
将openssh2格式的密钥改成ppk格式的,使用PAGEANT.EXE
增加密钥。
svn authz
在svn的authz目录中增加:
[/]
root = rw
方法1
在~/.ssh/authorized_keys
对应的public key前面增加如下:
## /data/svn为svn的根目录
command="/usr/bin/svnserve -t -r /data/svn --tunnel-user=root",no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding
例如:
command="/usr/bin/svnserve -t -r /data/svn --tunnel-user=root",no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwEXTRkzM+/R8NTIY34ZJDg8/UeXTr+2oFX2PPiCazqwUKiD55EzgMcvaZKvGZ9LcswuNc26febwZEfnQDl0HxbIlH+5tlDGk35A/WrLsi3uekTjkIDIw3Do2xb9QlnDtYXRs24lHExdJQJvV7fOdoG9ZCcdX+bU63q3Qj5DfFCpjmw5ocCVcvWTOOIG2wT++0Jxr6W3vBu6fuCVFq6siOEzXEBRx63pj7uYRNvCs6GsgbQnyKNRyZSiouyrb/qRj1AbqRWGBr8kEofgwwnP3xO61pyovZLOrJ9FsjUxTLaGACoGJioOgu4vqywYXnX3TYnYWgx7MPXb/ayhZtHXHqQ== kingwen@kingwen
使用svn co svn+ssh://[email protected]/p1
检出项目
此种方式该public key将不能登录ssh
方法2
直接使用绝对路径checkout项目:
## /data/.svn_repos/p1为项目的绝对路径
svn co svn+ssh://[email protected]/data/.svn_repos/p1
下面是广告时间
fanbiya Q1重低音电脑mp3手机通用线控入耳式运动耳塞式带麦耳机 低至 9.99元
精致女人坊精品服饰