svn冲突解决

来源:互联网 发布:杨贵妃 山口百惠 知乎 编辑:程序博客网 时间:2024/04/30 15:40
发生冲突C:\workspace\test>svn upConflict discovered in 'test.txt'.Select: (p) postpone, (df) diff-full, (e) edit,        (mc) mine-conflict, (tc) theirs-conflict,        (s) show all options:svn detects that theres a conflict here and require you to take some kind of action.If you type 's' here you will get a list of the commands and meaning如果你输入s选项,则会列出所有svn解决冲突的选项,如下所示:(e)  edit             - change merged file in an editor               #直接进入编辑(df) diff-full        - show all changes made to merged file          #显示更改至目标文件的所有变化(r)  resolved         - accept merged version of file(dc) display-conflict - show all conflicts (ignoring merged version)  #显示所有冲突(mc) mine-conflict    - accept my version for all conflicts (same)    #冲突以本地为准(tc) theirs-conflict  - accept their version for all conflicts (same) #冲突以服务器为准(mf) mine-full        - accept my version of entire file (even non-conflicts)#完全以本地为准(tf) theirs-full      - accept their version of entire file (same)    #完全以服务器为准(p)  postpone         - mark the conflict to be resolved later        #标记冲突,稍后解决(l)  launch           - launch external tool to resolve conflict(s)  show all         - show this list【选择处理方式一:df】If you type 'df' it will show you a all the conflicts in the following format选择选项df,则会按如下格式显示所有冲突Select: (p) postpone, (df) diff-full, (e) edit,        (mc) mine-conflict, (tc) theirs-conflict,        (s) show all options: df--- .svn/text-base/test.txt.svn-base    Tue Aug 10 10:59:38 2010+++ .svn/tmp/test.txt.2.tmp     Tue Aug 10 11:33:24 2010@@ -1 +1,3 @@-test\ No newline at end of file+<<<<<<< .mine +test User2 making conflict======= +User1 is making a conflict test>>>>>>> .r3'e' option will open the conflicted file in the text editor that you configured for svn to use. In this case it will show<<<<<<< .mine test User2 making conflict======= User1 is making a conflict test>>>>>>> .r3You can resolve the conflict here by changing the text to what you desire.For example:你可以解决冲突通过改变文件内容,例如vim test.txtUser1 is making a conflict test User2 making conflictsave your changes and exit your text editor and it will give you the conflict options again. Now if you use the 'r' it will mark the file is merged with a 'G'.  A status of 'G' means there was a conflict and it has been resolved.保存更改,又出现刚才的选项。此时你使用r选项,则会合并文件。如下所示:Select: (p) postpone, (df) diff-full, (e) edit, (r) resolved,        (mc) mine-conflict, (tc) theirs-conflict,        (s) show all options: eSelect: (p) postpone, (df) diff-full, (e) edit, (r) resolved,        (mc) mine-conflict, (tc) theirs-conflict,        (s) show all options: rG    test.txtUpdated to revision 3.you can now check the status with svn status. You see that test.txt is marked as 'M' all thats left to do is commit.检查svn状态,你会发现文件test.txt前面已变成MC:\workspace\test2>svn stM       test.txtC:\workspace\test2>svn ci -m "conflict resolved"Sending        test.txtTransmitting file data .Committed revision 4.【选择处理方式二:p】Sometimes the conflicts are a bit more extensive and it requires more time or better tools to resolve the conflict in these cases you can chose 'p' to postpone the resolution.有时,冲突会复杂一些,可能需要借助其他工具才能解决,这时你可以使用选项pSelect: (p) postpone, (df) diff-full, (e) edit, (r) resolved,        (mc) mine-conflict, (tc) theirs-conflict,        (s) show all options: pC    test.txtUpdated to revision 3.Summary of conflicts:  Text conflicts: 1Now if you look in your directory you will see that svn has created a few extra files for you.此时,查看当前文件夹下,出现了如下几个文件08/10/2010  11:44 AM                94 test.txt08/10/2010  11:44 AM                26 test.txt.mine08/10/2010  11:44 AM                27 test.txt.r208/10/2010  11:44 AM                31 test.txt.r3The test.txt file is now a file with both User2 and User1′s changes but marked.文件test.txt包含了用户1和用户2的更改。<<<<<<< .mine test User2 making conflict======= User1 am making a conflict test>>>>>>> .r3test.txt.mine is User2′s copy.文件.txt.mine保存了用户2的内容test User2 making conflicttest.txt.r2 is the original base copy文件.txt.r2是未冲突前的内容testtest.txt.r3 is the copy User1 commited文件.txt.r3保存了用户1的内容User1 is making a conflict testAt this point you can choose your favorite merge tools to merge the differences in a file.这种情况下,你可以选择自己喜欢的对比工具,查看差别。I suggest merging the differences into test.txt and the do a我建议和并不同至文件test.txt中,如果如下命令:C:\workspace\test>svn resolve --accept working test.txtResolved conflicted state of 'test.txt'You can also use any of the other files if you wanted to and just pass resolve –accept a different argument. Here are the valid arguments当然,你也可以使用其他文件,使用resolve -accept 加其他参数,共6个(1)#svn resolve –accept baseChoose the file that was the BASE revision before you updated your working copy. That is, the file that you checked out before you made your latest edits.使用1.txt.r2作为最后提交的版本(2)#svn resolve –accept workingAssuming that you've manually handled the conflict resolution, choose the version of the file as it currently stands in your working copy.使用当前拷贝即test.txt作为最后提交的版本(3)#svn resolve –accept mine-fullResolve all conflicted files with copies of the files as they stood immediately before you ran svn update.使用test.txt.mine作为最后提交的版本(4)#svn resolve –accept theirs-fullResolve all conflicted files with copies of the files that were fetched from the server when you ran svn update.使用test.txt.r3作为最后提交的版本(5)#svn resolve –accept mine-conflict冲突的部分以本地修改为准(6)#svn resolve –accept theirs-conflict冲突的部分以服务器端修改为准执行一下:svn resolved test.txt。Now you are ready to commit.然后提交C:\workspace\test>svn ci -m "conflict resolved"Sending        test.txtTransmitting file data .Committed revision 4.

0 0
原创粉丝点击