环境
192.168.1.113 vm113 SVN 服务器
192.168.1.114 vm114 client
两台都要安装 subversion
SVN 服务器配置
1、安装
svnserve --version #查看版本
yum install subversion -y
2、建立版本库
mkdir -p /var/svn/rubis
svnadmin create /var/svn/rubis
3、配置权限
cd /var/svn/rubis/
#查看
ll
结果
drwxr-xr-x 2 root root 54 10月 12 14:05 conf
drwxr-sr-x 6 root root 253 10月 12 15:12 db
-r--r--r-- 1 root root 2 10月 12 11:21 format
drwxr-xr-x 2 root root 250 10月 12 15:03 hooks
drwxr-xr-x 2 root root 41 10月 12 11:21 locks
-rw-r--r-- 1 root root 229 10月 12 11:21 README.txt
5、添加用户
vi conf/passwd
#添加
[users]
admin = admin
guest = guest
6、添加权限
vi conf/authz
#添加
[/]
admin = rw
guest = r
7、修改配置文件
vi vi conf/svnserve.conf
#修改如下
[general]
anon-access = none #匿名用户禁止读写
auth-access = write #认证用户允许读写
password-db = passwd #密码文件为当前目录的passwd
realm = /var/svn/rubis #仓库名称
8、启动
systemctl start svnserve
9、查看服务器端的数据
svn list svn://192.168.1.113/rubis --username=admin --password=admin
二、Client 端
1、检出到一个新的工作副本 /opt/rubis
svn checkout svn://192.168.1.113/rubis /opt/rubis
2、本地提交数据到服务器
cd /opt/rubis
#新建一个文件
touch 1.txt
#加入版本控制,未提交,必须在工作副本内,才能添加成功
svn add 1.txt
A 1.txt
#查看状态
svn status
#此时状态为A,它意味着这个文件已经被成功地添加到了版本控制中
A 1.txt
#提交到版本库
svn commit -m "SVN 1.txt"
正在增加 1.txt
传输文件数据.
提交后的版本为 1。
3、192.168.1.113 服务器端上面 查看数据,1.txt 已经传至服务器了
[root@vm113 ~]# svn ls svn://192.168.1.72/rubis --username=admin
1.txt
三、post-commit 自动更新脚本(SVN服务器端)
实现 client 端,提交了版本修改后,自动更新服务器端 checkout 的一个工作副本,不需要手动更新 update
#服务器端 checkout 一个工作副本 /tmp/rubis
svn checkout svn://192.168.1.113/rubis /tmp/rubis
#切换到勾子目录
cd /var/svn/rubis/hooks/
#新建勾子脚本
vi post-commit
#内容
#!/usr/bin/bash
svn=/usr/bin/svn
web=/tmp/rubis
$svn update $web --username=admin --password=admin
#修改权限
chmod 755 post-commit
systemctl restart svnserve
四、使用 windows 客户端 TortoiseSVN
链接:https://pan.baidu.com/s/17LBWxXLLSnbZjRJOeDPQkQ
提取码:4zy8
五、svn 其它操作
#文件恢复状态
svn revert 3.txt
#版本18回滚17
svn merge -r 18:17 3.txt
#查看当前版本号
svn info
#查看指定版本号信息
svn log -r 18
#显示两个版本的不同之处
svn diff -r 18:17
#更新版本库
svn update