SVN 解决冲突

  • 总结:html

  • 可能会取消一些修改svn

    • svn revert工具

  • 解决冲突(合并别人的修改)spa

    • svn updatecode

    • svn resolvedhtm

  • 提交你的修改ci

    • svn commit文档

 

若是你遇到冲突,三件事你能够选择:get

  • “手动”合并冲突文本(检查和修改文件中的冲突标志)。it

  • 用某一个临时文件覆盖你的工做文件。

  • 运行svn revert <filename>来放弃全部的本地修改。

一旦你解决了冲突,你须要经过命令svn resolved让Subversion知道,这样就会删除三个临时文件,Subversion就不会认为这个文件是在冲突状态了。

$ svn resolved sandwich.txt
Resolved conflicted state of 'sandwich.txt'

手工合并冲突

第一次尝试解决冲突让人感受很惧怕,但通过一点训练,它简单的像是骑着车子下坡。

这里一个简单的例子,因为不良的交流,你和同事Sally,同时编辑了sandwich.txt。Sally提交了修改,当你准备更新你的工做拷贝,冲突发生了,咱们不得不去修改sandwich.txt来解决这个问题。首先,看一下这个文件:

$ cat sandwich.txt
Top piece of bread
Mayonnaise
Lettuce
Tomato
Provolone
<<<<<<< .mine
Salami
Mortadella
Prosciutto
=======
Sauerkraut
Grilled Chicken
>>>>>>> .r2
Creole Mustard
Bottom piece of bread

小于号、等于号和大于号串是冲突标记,并非冲突的数据,你必定要肯定这些内容在下次提交以前获得删除,前两组标志中间的内容是你在冲突区所作的修改:

<<<<<<< .mine
Salami
Mortadella
Prosciutto
=======

后两组之间的是Sally提交的修改冲突:

=======
Sauerkraut
Grilled Chicken
>>>>>>> .r2

一般你并不但愿只是删除冲突标志和Sally的修改—当她收到三明治时,会很是的吃惊。因此你应该走到她的办公室或是拿起电话告诉Sally,你没办法从从意大利熟食店获得想要的泡菜。[7]一旦大家确认了提交内容后,修改文件而且删除冲突标志。

Top piece of bread
Mayonnaise
Lettuce
Tomato
Provolone
Salami
Mortadella
Prosciutto
Creole Mustard
Bottom piece of bread

如今运行svn resolved,你已经准备好提交了:

$ svn resolved sandwich.txt
$ svn commit -m "Go ahead and use my sandwich, discarding Sally's edits."

如今咱们准备好提交修改了,注意svn resolved不像咱们本章学过的其余命令同样须要参数,在任何你认为解决了冲突的时候,只须要当心运行svn resolved,—一旦删除了临时文件,Subversion会让你提交这文件,即便文件中还存在冲突标记。

记住,若是你修改冲突时感到混乱,你能够参考subversion生成的三个文件—包括你未做更新的文件。你也可使用三方交互合并工具检验这三个文件。

复制文件到你的工做文件

若是你只是但愿取消你的修改,你能够仅仅拷贝Subversion为你生成的文件替换你的工做拷贝:

$ svn update
C  sandwich.txt
Updated to revision 2.
$ ls sandwich.*
sandwich.txt  sandwich.txt.mine  sandwich.txt.r2  sandwich.txt.r1
$ cp sandwich.txt.r2 sandwich.txt
$ svn resolved sandwich.txt

脚注:使用svn revert

若是你获得冲突,通过检查你决定取消本身的修改而且从新编辑,你能够恢复你的修改:

$ svn revert sandwich.txt
Reverted 'sandwich.txt'
$ ls sandwich.*
sandwich.txt

注意,当你恢复一个冲突的文件时,不须要再运行svn resolved

提交你的修改

如何下降冲突解决的复杂度:

  一、当文档编辑完成后,尽快提交,频繁的提交/更新能够下降在冲突发生的几率,以及发生时解决冲突的复杂度。

  二、在提交时,写上明确的message,方便之后查找用户更新的缘由,毕竟随着时间的推移,对当初更新的缘由有可能会遗忘

  三、养成良好的使用习惯,使用SVN时每次都是先提交,后更新。天天早上打开后,首先要从版本库获取最新版本。天天下班前必须将已经编辑过的文档都提交到版本库。

相关文章
相关标签/搜索