svn conflict

无人久伴 提交于 2020-03-24 12:41:14

安装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命令,然后自己去搞吧

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!