svn不仅仅可以用于程序开发,还可以做很多事情,例如备份文档。
CentOS下:安装
yum install -y subversion
Ubuntu下:
sudo apt-get install subversion
检查是否安装成功
svnserve --version
建立项目
mkdir -p ~/svn //建立svn根目录,用于存放多个项目,其中“~”表示home目录
新建项目proj1
mkdir -p ~/svn/proj1 //其中-p表示没有父目录则新建 svnadmin create ~/svn/proj1
命令完成后,会在proj1目录下生成相应的文件和文件夹:
再建立1个项目proj2
mkdir-p ~/svn/proj2 svnadmin create ~/svn/proj2
配置SVN
将proj1/conf下的authz、passwd和svnserve.conf拷贝至~/svn/根目录下,结果如下所示:
添加用户
注意:不需要在linux中添加用户
vi ~/svn/passwd,添加形如“username=password”的条目即可
权限控制
用于设置哪些用户可以访问哪些目录
vi ~/svn/authz,添加
[groups]
admin=test1 devteam1=test2,test3 //开发组一 devteam2=test4 [/]
@admin=rw *=
[proj1:/]
@devteam1=rw [proj2:/]
@devteam2=rw
注: 此处的用户名必须是“passwd”文件中已经定义的用户名
1个用户组可以包含1个或多个用户,用户间以逗号分隔
*=表示除了有权限的用户之外,其他任何人都禁止访问本目录。
进入proj1/conf,配置svnserve.conf(左侧不能留空格),让用户和权限控制策略生效
[general] anon-access=none # 使非授权用户无法访问 auth-access=write#使授权用户有写权限 password-db=~/svn/passwd#密码文件 authz-db=~/svn/authz#访问控制文件
以后建立的其它项目可以直接使用此配置,如:
cp ~/svn/proj1/conf/svnserve.conf ~/svn/proj2/conf/svnserve.conf
或cp ~/svn/svnserve.conf ~/svn/proj2/conf/svnserve.conf
启动
svnserve -d -r ~/svn (注意不是~/svn/proj1)
-d表示以守护模式运行
svn默认监听3690端口,如果已经有svn在运行了,可以使用“--listen-port=”指定其它端口
svnserve-d-r ~/svn/--listen-port3391
这样同一台服务器便可以运行多个svnserver了
检查端口
netstat-ntlp|grep3690
注:如果修改了svn配置,需要重启svn服务
# ps -aux|grep svnserve
# kill -9 ID号 // -9表示强制终止# svnserve -d -r ~/svn
开启3690端口
/sbin/iptables -I INPUT -p tcp --dport3690-j ACCEPT /etc/init.d/iptables save //保存 service iptables restart //重启防火墙
可通过cat /etc/sysconfig/iptables查看是否将3690端口添加成功
windows下测试
需要安装TortoiseSVN,有32位和64位
home/<user>/.subversion/目录下的config文件找到一下配置:
# store-passwords = no
将“store-passwords = no” 注释掉或将其值设置成yes
在~/.subversion/servers的global域下设置store-plaintext-passwords = yes