环境:CentOs 6.5(最小化安装)


参考资料:http://www.iusesvn.com/subversion/tortoisesvn_doc/

[[email protected] ~]# yum -y install subversion
[[email protected] ~]# mkdir /svn/ -p
[[email protected] ~]# useradd svn
[[email protected] ~]# chown svn:svn /svn/ -R
[[email protected] ~]# chmod 775 /svn/ -R
[[email protected] ~]# cd /svn/
[[email protected] svn]# svnadmin create test
[[email protected] svn]# ls
test
[[email protected] svn]# cd test/conf/
[[email protected] conf]# ls
authz  passwd  svnserve.conf
[[email protected] conf]# grep -v ^# passwd |grep -v ^$
[users]
admin = redhat
yfshare= redhat
[[email protected] conf]#
[[email protected] conf]# grep -v ^# authz |grep -v ^$
[aliases]
[groups]
test = admin,yfshare
[/]
@test = rw
[[email protected] conf]#
[[email protected] 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
[[email protected] conf]#
[[email protected] conf]# svnserve -d -r /svn/
[[email protected] conf]# netstat -tunlp|grep svnserve
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN      1372/svnserve        
[[email protected] conf]#

安装TortoiseSVN后,右键桌面点击SVN checkout

Linux下搭建SVN+版本冲突

Linux下搭建SVN+版本冲突

Linux下搭建SVN+版本冲突

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

右键test文件夹,选择SVN commit

Linux下搭建SVN+版本冲突

Linux下搭建SVN+版本冲突

Linux下搭建SVN+版本冲突

Linux下搭建SVN+版本冲突

上传成功



SVN解决版本冲突:

A、B用户执行SVN update,test文件当前版本为1

A用户编辑后执行SVN commit后,test文件当前版本为2

B用户编译后执行SVN commit,由于B用户此时的test文件版本仍为1,会同步出错

Linux下搭建SVN+版本冲突

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

Linux下搭建SVN+版本冲突

Linux下搭建SVN+版本冲突

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

Linux下搭建SVN+版本冲突

Linux下搭建SVN+版本冲突

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

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

Linux下搭建SVN+版本冲突

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


工作拷贝中的每一个目录都有一个叫作.svn的管理目录,工作目录中的每一个文件,Subversion在管理区域为它保留了一个备份,这是上一个版本(叫做“BASE”版本)没有修改的(没有关键字变化,没有行结束符号转化,没有任何改动)拷贝,我们把这个文件当作原始拷贝或基准文件使用,它与版本库中的文件完全一样