简介:
目前流行的版本控制软件中,SVN ( 集中式版本控制 ) 算是使用范围更广、且使用时间更早的一款了,现在 git ( 分布式版本控制 ) 更火爆一点。
一、安装svn
[root@localhost ~]# yum -y install subversion [root@localhost ~]# svn --version #查看版本号 svn,版本 1.6.11 (r934486)
二、配置svn
1、创建工作目录及版本库
[root@localhost ~]# mkdir /svn [root@localhost ~]# svnadmin create /svn/myrepos #创建一个名为myrepos的版本库 [root@localhost ~]# ls /svn/myrepos/ [root@localhost ~]# tree /svn/myrepos/conf/ /svn/myrepos/conf/ ├── authz #用户授权配置文件 ├── passwd #用户认证配置文件 └── svnserve.conf #服务配置文件
2、修改svn版本库配置文件(需要重启svnserver)
[root@localhost ~]# grep -vP '^#|^$' /svn/myrepos/conf/svnserve.conf [general] anon-access = none #匿名用户访问权限 auth-access = write #认证用户访问权限 password-db = passwd #认证用户命名文件 authz-db = authz #目录授权文件 realm = My First Repository #提示信息 [sasl]
3、添加认证用户、密码(username = password)
[root@localhost ~]# grep -vP '^#|^$' /svn/myrepos/conf/passwd [users] lys = liuyisai qs = qingshan
4、添加目录授权
[root@localhost ~]# grep -vP '^#|^$' /svn/myrepos/conf/authz [aliases] [groups] [myrepos:/] #授权目录 lys = rw #授权认证用户lys(可读、可写) qs = r #授权认证用户qs(可读) * = #非授权认证用户(无权限)
5、以守护进程的方式启动svn
[root@localhost ~]# svnserve -d -r /svn #-d 以守护进程的方式启动一个svnserver,-r 指定版本库
#默认监听TCP 3690 端口,以守护进程模式启动时,可以使用--list-port、--list-host来指定端口、主机
[root@localhost ~]# netstat -lnpt | grep 3690 tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 3109/svnserve
6、授权测试
[root@localhost ~]# svn checkout --no-auth-cache --username lys --password liuyisai svn://192.168.2.205/myrepos /home/lys/ 取出版本 0。 [root@localhost ~]# svn checkout --no-auth-cache --username qs --password qingshan svn://192.168.2.205/myrepos /home/qs 取出版本 0。
[root@localhost ~]# touch /home/lys/readme #创建测试文件 [root@localhost ~]# svn add /home/lys/readme #添加到工作区 A /home/lys/readme [root@localhost ~]# svn --no-auth-cache --username lys --password liuyisai commit -m 'add readme' /home/lys/readme 增加 home/lys/readme 传输文件数据. 提交后的版本为 1。
[root@localhost ~]# touch /home/qs/readme1 [root@localhost ~]# svn add /home/qs/readme1 A /home/qs/readme1 [root@localhost ~]# svn --no-auth-cache --username qs --password qingshan commit -m 'add readme1' /home/qs/readme1 svn: 提交失败(细节如下): svn: 认证失败
三、停止svnserver
[root@localhost ~]# kill $(ps aux | grep svnserve | grep -v grep | awk '{print $2}')
四、svn备份、还原
1、逻辑备份(备份灵活、可以全量、增量备份--incremental、节省空间,适合版本库比较小的规模)
[root@localhost ~]# svnadmin dump /svn/myrepos > /data/backup/myrepos_$(date +%Y%m%d).bak
2、物理备份(占用空间大,备份、恢复速度快)
[root@localhost ~]# svnadmin hotcopy /svn/myrepos/ /data/backup/myrepos_hot_$(date +%Y%m%d).bak
3、逻辑还原
[root@localhost ~]# svnadmin load /svn/myrepos/ < /data/backup/myrepos_20161024.bak #注意:如果版本库被删,还原以后还需重新配置认证用户、授权等!
4、物理还原
[root@localhost ~]# svnadmin hotcopy /data/backup/myrepos_hot_20161024.bak/ /svn/myrepos/
五、win客户端连接
1、下载、安装小乌龟 ( TortoiseSVN )
2、建立工作目录,右键 Checkout --> URL ( svn://192.168.2.205/myrepos ) --> 输入用户名、密码 ( lys / liuyisai )
3、测试授权,创建一个文件,添加,提交 看看是否很授权吻合 !