svn提交冲突

3 篇文章 0 订阅

svn冲突如下

Conflict discovered in ‘**/SYHelper_CheckVersion.swift’.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options:

  1. 如果输入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】
选择df,则会按如下格式显示所有冲突

Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: df
— .svn/文件名.svn-base 时间 ( Tue Aug 10 11:33:24 2015)
+++ .svn/tmp文件名.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>>>>>>> .r3

You can resolve the conflict here by changing the text to what you desire.
For example:
你可以解决冲突通过改变文件内容,例如vim 文件

save 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: e
Select: (p) postpone, (df) diff-full, (e) edit, (r) resolved,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: r
G test.txt
Updated 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前面已变成M

C:\workspace\test2>svn st
M test.txt

C:\workspace\test2>svn ci -m “conflict resolved”
Sending test.txt
Transmitting file data .
Committed revision 4.

【选择处理方式二:p】
有时,冲突会复杂一些,可能需要借助其他工具才能解决,这时你可以使用选项p

Select: (p) postpone, (df) diff-full, (e) edit, (r) resolved,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: p

Conflict discovered in ‘/Users/yanyanforest/Desktop/workCopy_Important/YY/Swift_Framework/Framework_SYUI/0_Objc/SYHelper_CheckVersion.swift’.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: p
文件列表
Summary of conflicts:
Text conflicts: 1
ZZZZ:yy yanyanforest$ svn ci -m a
svn: E155015: Commit failed (details follow):
svn: E155015: Aborting commit: ‘**/SYHelper_CheckVersion.swift’ remains in conflict
此时,查看当前文件夹下,出现了如下几个文件,其后缀
.mine 、.r2 、.r3()

文件SYHelper_CheckVersion.swift包含了用户1和用户2的更改。
用Xcode打开文件SYHelper_CheckVersion.swift。然后Command+F搜索”<<<<<<<”看看哪些是自己需要的,然后改正,去除符号”<<”、”===”、”>>>”
然后删除 .mine 、.r2 、.r3的后缀
<<<<<<< .mine test User2 making conflict======= User1 am making a conflict test>>>>>>> .r3

test.txt.mine is User2′s copy.
文件.txt.mine保存了用户2的内容

test User2 making conflict

test.txt.r2 is the original base copy
文件.txt.r2是未冲突前的内容

test

test.txt.r3 is the copy User1 commited
文件.txt.r3保存了用户1的内容

User1 is making a conflict test

At 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.txt

Resolved 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个

实例:
svn resolve mail.sh –accept ‘mine-conflict’ #解决冲突。
svn resolved mail.sh #告知svn。4个文件中的其他3个消失

(1)#svn resolve –accept base
Choose 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 working
Assuming 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-full
Resolve 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-full
Resolve 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.txt
Transmitting file data .
Committed revision 4.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值