是否有可能用“更好”的方法取代TortoiseSVN的合并算法?

时间:2013-05-22 10:55:13

标签: svn merge tortoisesvn svn-merge

使用SVN中的合并功能(通过TortoiseSVN)几个月后,我感觉SVN过于频繁地报告发生冲突。

所以我正在寻找一种方法(Tortoise)SVN更经常地在没有用户交互的情况下自动解决冲突。

我知道similar questions以及您可以将diff查看器和合并工具替换为外部工具的事实:

enter image description here

据我所知,这些工具链接得太迟了;当内部算法已经检测到无法解决的冲突时,它们会被SVN / TortoiseSVN调用。

所以我的问题是:

  • 我对行为的假设(内部合并算法,外部合并工具)是否正确?
  • 有没有办法通过(例如付费)工具改进内部合并算法?

(我正在使用VisualSVN Server和V1.7存储库,以防万一)

2 个答案:

答案 0 :(得分:1)

很难推测上下文,但发现的冲突不太可能与TortoiseSVN有任何关系,更多的是与svn有关。正如mvp所说,git会更好(嘿)但是你看了--reintegrate标志进行合并吗?不确定如何直接从TortoiseSVN使用它,但事实证明它对减少冲突非常有用。

修改 View the 'advanced merging' tutorial here

答案 1 :(得分:1)

首先,它与Tortoise无关 - 这只是SVN系统上非常好的GUI。

现在,也许你有很多实际需要人类关注的合并。如果是这样的话,转向像git或Mercurial这样的东西对你来说无济于事 - 这些都不能说明你的意思,就像SVN无法分辨的那样。

您可以通过阅读文档查看SVN does its merge algorithm的方式。 FYI v1.8对它进行了一些调整,这意味着在进行重新整合合并时手动决策要少得多 - 它现在只是自动执行,所以如果你一直在做特殊功能 - 分支风格的合并并且一直在做错了,那就再也不会抱怨了。他们现在一直致力于合并最后两个版本,不仅使用mergeinfo不断改进,而且还使用移动等功能,因此它可以告诉文件不是新的或删除,因此减少了任何树冲突类型的合并。