SVN版本控制器

版本控制器(subversion(svn),git)


1.搭建和配置

yum -y install subversion
rpm -q subversion
systemctl stop firewlld
setenforce 0

2.创建自己的版本库

mkdir /var/svn
svnadmin create /var/svn/project
ls /var/svn/project/

3.导入本地初始化数据

cd /usr/lib/system/system/ 
svn import . file:///var/svn/project/ -m "Init Data"  #上传数据

4.修改配置文件并且创建账户与密码

4.1  vim /var/svn/project/conf/svnserve.conf
*++++++++++++++++*
19 anon-access = none
20 auth-access = write
27 password-db = passwd
34 authz-db = authz
*++++++++++++++++*

4.2  vim /var/svn/project/conf/passwd 
[users]
harry=123456
tom=123456

4.3  vim /var/svn/project/conf/authz 
[group]
harry_and_tom = harry,tom
[/]
harry=rw
tom=rw

5.启动服务:

svnserve –d  -r /var/svn/project   # -d放后台防止占用当前的终端 -r指定一个路径 
netstat -lnput |grep 3690   # 查看Svn的端口

6.客户端口的测试

svn --username harry --password pass co svn://服务端的IP code  # 建立本地的副本
提示取出版本1,则成功!

7.SVN的实际操作

cd /tmp/code                #去svn目录下
touch test.sh|echo "test">test.sh   #创建新的文件
svn add test.sh                 #将新的文件或是目录加入
svn diff                    #本地版本的svn和服务端的比对不同
svn ci -m 'test'            #将本地版本的同步到服务端
svn update                  #将服务器上新的内容同步到本地
svn log                     #查看服务器仓库日志
svn info                    #查看仓库的信息
svn rm timers.target        #使用svn删除文件
svn diff a.sh               #仅查看某一个文件的差异
svn cat svn://服务器ip/reboot.target   #查看服务器文件的内容
svn merge –r7:2   a.sh      #将文件从版本7还原到版本2

使用SVN协同工作

  • 版本库支持多个账户同时协作编辑文件
  • 测试演示多人协作编辑的具体操作
  • 手动解决版本冲突问题
  • 备份版本库数据

    环境:svn_server和svn_client同时下载同样的svn版本


1.两用户修改不同的文件(执行成功)

svn --username harry --password 123456 co svn:服务端的IP code
svn --username tom --password 123456 co svn:服务端的IP code
haryy用户执行以下:
echo "123456">/tmp/code/a.sh
svn ci -m 'modify  a.sh'
tom用户执行以下:
echo "123456">/tmp/code/b.sh
svn ci -m 'modify  b.sh'
分别执行svn update

2.两个用户修改相同的一个文件的不同行

haryy用户执行以下:
vim /tmp/code/b.sh                  #只修改第一行的内容
svn ci -m 'modify  b.sh-1hang'      #执行成功
tom用户执行以下:
echo "123456">/tmp/code/b.sh        #在下一行添加内容
svn ci -m 'modify  b.sh-2hang'      #执行失败,提交已经过时
svn update                          #先执行更新,然后再提交新的内容
svn ci -m 'modify  b.sh-2hang'      #执行成功

3.两个用户修改相同的一个文件的相同行

haryy用户执行以下:
vim /tmp/code/a.sh              #修改某一行的内容
svn ci -m 'modify  a.sh'        #提交数据
tom用户执行以下:
vim /tmp/code/a.sh              #修改相同行的内容
svn ci -m 'modify  a.sh'        #提交数据,报错发现冲突系统无法判断哪一个人提交的版本才是正确的,这个时候会问你的那个一个版本才是要提交的
选择P线下解决这个问题,人员之间交流
ls                              #发现目录下多出来的好几个文件
a.sh.mine   a.sh.r6     a.sh.r5     #3个文件
mv a.sh.mine a.sh               #将我的替换
svn ci -m 'modify  a.sh'        #提交数据,解决冲突的问题

4.使用dump指令备份版本库数据和还原

svnadmin dump /var/svn/project > project.bak    #备份
svnadmin load /var/svn/project2 < project.bak   #还原

发表评论