安装svn
apt-get install subversion
当前两个人都更新版本为version1
A修改了monitor.txt文件 提交后版本为version2
B也修改了monitor.txt文件,提交后提示冲突,update后出现:
root@test61:/tmp/testsvn/switches# svn update Conflict discovered in 'monitor.txt'. Select: (p) postpone, (df) diff-full, (e) edit, (mc) mine-conflict, (tc) theirs-conflict, (s) show all options:
postpone 的意思是暂时推后处理,我可能要和那个和我冲突的家伙商量一番。 diff-full,则是比比看,到底什么地方冲突了。edit,修改冲突合并的文件。 mc,这个霸道,直接用我的。 tc , 底气不足,还是用别人修改的吧。
所以,一般是先选择p,然后发现会多几个文件,有1版本的,有2版本的,还有自己版本的,所以这时候就和A去协商下怎么改好吧。。。
然后选择还不能提交,svn st会发现monitor.txt提示是C ,这时候需要先使用resolve命令来说明怎么解决冲突
$svn resolve --accept working reademe.txt svn resolve 是解决冲突的命令。解决的方法由--accept 选项决定。 base 恢复到冲突前的一个版本。 mine-full 恢复到以我的修改为主的版本 their-full 恢复到库中最新版本 working 手动解决
所以这里先用命令 svn resolve --accept working monitor.txt 然后就去修改monitor.txt,然后再commit就 ok了,当然之前生成的多余的文件也没有了。
root@test61:/tmp/testsvn/switches# svn commit -m "fix svn conflict test" 还没有resolve就提交会报错 svn: Commit failed (details follow): svn: Aborting commit: '/tmp/testsvn/switches/monitor.txt' remains in conflict root@test61:/tmp/testsvn/switches# svn resolve --accept working monitor.txt 先resolve说明手动解决 Resolved conflicted state of 'monitor.txt' root@test61:/tmp/testsvn/switches# svn commit -m "fix svn conflict test" 提交成功 Sending monitor.txt Transmitting file data . Committed revision 15451.
如果是选择edit,也需要resolved(注意这里是和resovle不同的命令!)才能结束conflict,这时候任然处于没有提交的状态,直接提交就可以了。
如果是windows就直接会自动用p命令,然后自己去搞吧
来源:https://www.cnblogs.com/juandx/p/4086035.html