问题 用Tortoise处理SVN中的冲突?


任何时候出现类似合并冲突或类似事件的问题,它确实会让我失望。

有人可以向我解释如何强制解决冲突吗?

例如,我的一个伙伴对存储库中的文件进行了编辑并提交。在他这样做的时候,我已经重命名了这个文件,并在我的工作副本上做了很多编辑。

当我去提交时,我明显得到了冲突错误。他编辑的文件在我的工作副本上甚至不再存在。我如何告诉SVN简单地放弃对冲突的哭泣并强制它接受我的工作副本(即用我的工作副本覆盖头部修订版)。


4389
2018-06-30 20:38


起源

我发现了一个与Tortoise SVN解决冲突的视频 youtube.com/watch?v=ZmARaN5eb3U - Zlelik


答案:


更新工作副本时,可以右键单击日志列表并选择解决冲突的方法:

  • 使用编辑器/ TortoiseMerge(或您配置的任何合并工具)解析
  • 解决使用“他们的”,即存储库中的版本
  • 解决使用“我的”,即您的文件版本。

这在删除文件时也有效 正确  - 即你 需要 如果要从存储库中实际删除该文件,请使用svn删除该文件。如果您出于方便原因删除了该文件,则可能需要 svn revert 它在更新之前作为工作副本中缺少的文件也是一个修改过的文件(不出所料)。

总结一下:你 不能 告诉svn“停止哭泣”并简单地用你的工作副本覆盖。这是件好事。您需要解决冲突(这可能意味着只是覆盖当前状态),将受影响的文件标记为已解决(svn resolved)然后提交结果。


8
2017-07-02 21:39





我是这样做的:

  1. 右键单击Solutions文件夹,单击TortoiseSVN - > Show Log。
  2. 右键单击要还原的修订,选择“从此修订还原更改”
  3. 右键单击冲突的文件夹,选择“已解决”。
  4. 提出你的解决方案
  5. 利润

5
2018-06-30 22:44



你的伙伴也会同意修改他的工作副本吗? ;-)我建议与你的好友交谈,做出小的逻辑变化并经常更新。 - Bert Huijben
如果我做出更改并提交并且其他用户进行了更改并希望更改与我提交的内容合并,该怎么办?我有点挫折。 - SearchForKnowledge


防止这种情况发生的最佳方法是在提交之前更新。


0
2018-06-30 20:40



好吧,它发生了,并且更新或提交在解决之前不起作用。 - KingNestor
事实上,经常更新。
我们可以回滚他的提交方式吗? - KingNestor
有时我不得不在一个单独的文件夹中备份我的工作,删除存储库并从SVN服务器重新创建我的本地存储库/中继。您也可以尝试“清理”和“已解决”功能,但这些功能通常不会太大。只需确保在擦除任何内容之前都备份了更改,这样您就不会丢失工作。将来,最好在提交之前立即更新。它可以挽救这些头痛。 - D3vtr0n
您可以使用菜单中的“显示日志”回滚提交。以下是Tortoise的链接: tortoisesvn.net/docs/release/TortoiseSVN_en/... - D3vtr0n


我想说:防止这种情况发生的最好方法是在你修改之前更新文件。 一旦完成更改,如果在提交之前更新,则会丢失它们!


0
2018-03-21 18:26





这里是: 如果您处于两个窗格视图中,则只能在右窗格(我的)中编辑该文件。要应用左侧文件(他们的)中所做的更改,请右键单击更改的行,然后选择“上下文菜单”→“使用他们的文本块”。然后左侧文件中的更改将添加到右侧文件中。

有时你实际上想要两个文本块,上下文菜单也提供了上下文菜单→使用两个文本块(首先是这个)和上下文菜单→使用两个文本块(最后一个)。

如果您处于三窗格视图(有时称为合并视图),则只能在底部视图中编辑该文件(合并)。在两个窗格视图中,您可以右键单击冲突的行,然后选择上下文菜单→使用来自'他们'的文本块或上下文菜单→使用来自'我的'的文本块。此外,如果你想要两个块,你可以选择上下文菜单→在'他们'之前使用'mine'中的文本块或上下文菜单→在'我'之前使用'他们'中的文本块。根据您选择的命令,更改将在生成的Merged文件中使用。

参考链接: https://tortoisesvn.net/docs/nightly/TortoiseMerge_en/tmerge-dug-conflicts.html


0
2018-06-29 03:32