您的位置:首页 > 运维架构 > Linux

Linux下搭建SVN+版本冲突

2015-07-15 16:10 597 查看
环境:CentOs 6.5(最小化安装)

参考资料:http://www.iusesvn.com/subversion/tortoisesvn_doc/
[root@localhost ~]# yum -y install subversion
[root@localhost ~]# mkdir /svn/ -p
[root@localhost ~]# useradd svn
[root@localhost ~]# chown svn:svn /svn/ -R
[root@localhost ~]# chmod 775 /svn/ -R
[root@localhost ~]# cd /svn/
[root@localhost svn]# svnadmin create test
[root@localhost svn]# ls
test
[root@localhost svn]# cd test/conf/
[root@localhost conf]# ls
authz  passwd  svnserve.conf
[root@localhost conf]# grep -v ^# passwd |grep -v ^$
[users]
admin = redhat
yfshare= redhat
[root@localhost conf]#
[root@localhost conf]# grep -v ^# authz |grep -v ^$
[aliases]
[groups]
test = admin,yfshare
[/]
@test = rw
[root@localhost conf]#
[root@localhost conf]# grep -v ^# svnserve.conf |grep -v ^$
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
[sasl]
min-encryption = 0
max-encryption = 256
[root@localhost conf]#
[root@localhost conf]# svnserve -d -r /svn/
[root@localhost conf]# netstat -tunlp|grep svnserve
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN      1372/svnserve
[root@localhost conf]#
安装TortoiseSVN后,右键桌面点击SVN checkout









提交之前,先要执行SVN update从服务器下载最新的版本,然后在执行SVN commit,可避免版本冲突
右键test文件夹,选择SVN commit












上传成功

SVN解决版本冲突:
A、B用户执行SVN update,test文件当前版本为1
A用户编辑后执行SVN commit后,test文件当前版本为2
B用户编译后执行SVN commit,由于B用户此时的test文件版本仍为1,会同步出错



如果B用户对这个文件夹直接执行SVN update,由于版本不同,会生成几个状态文件







这时B用户需要消除这些状态文件,对test文件执行TortoiseSVN---Resolved







这时test文件内容会发生改变。注:如果test是纯文本文件,则可以执行Resolved;如果是非纯文本文件,则只能放弃修改,执行TortoiseSVN---Revert



这时B用户就可以test文件执行SVN commit提交了




注:提交之前,先要执行SVN update从服务器下载最新的版本,然后在执行SVN commit,可避免版本冲突

工作拷贝中的每一个目录都有一个叫作.svn的管理目录,工作目录中的每一个文件,Subversion在管理区域为它保留了一个备份,这是上一个版本(叫做“BASE”版本)没有修改的(没有关键字变化,没有行结束符号转化,没有任何改动)拷贝,我们把这个文件当作原始拷贝或基准文件使用,它与版本库中的文件完全一样
本文出自 “鹏城-酱油瓶” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: