3

我有一大堆有细微差别的文件。我们使用 subversion 进行源代码控制,我喜欢 TortoiseSVN for windows 附带的 Merge/Diff 实用程序。我可以使用这个实用程序手动比较/合并两个文件。我的问题是:如何以与此实用程序相同的方式以编程方式将两个文件合并在一起(并忽略和标记有冲突的文件)?

4

4 回答 4

2

我建议使用支持已建立的合并算法的 .NET 库之一,例如在这个问题中建议的:任何适合 .NET 的体面文本差异/合并引擎?

不知道质量,我也偶然发现了这个:http ://razor.occams.info/code/diff/

于 2010-01-11T19:23:43.823 回答
2

这可能会有所帮助:自动化 TortoiseMerge

于 2010-01-11T19:20:31.847 回答
0

在没有人为干预的情况下合并两个没有冲突的文件可能不是一个好主意,除非您可以很容易地分辨出实际的更改是什么,例如拥有两个文件的之前版本(就像 Subversion 一样。)

例如,给定以下两个文件,正确的做法是什么?(#列是行号,空白表示缺少行)

--- File #1 ------------------------        --- File #2 ------------------------
1   This is the first line                  1   This is the first line
2   This is the second line                 2   This is the second line
3   This is the third line
4   This is the fourth line                 3   This is the fourth line
                                            4   This is the fifth line
5   This is the sixth line                  5   This is the sixth line

那么,这里的正确结果是什么?

于 2010-01-11T19:26:40.847 回答
0

我知道的几个选项:

  • Visual Studio的ANKH源代码控制提供程序使用的Sharp SVN 。但是,获取存储库很慢
  • DotSVN - 'Subversion 的 .Net 端口'
  • 如果摆脱颠覆不是问题,您可以尝试 Google 的Diff Match Patch

我不确定这两个颠覆项目是否实现了合并,但我想这是一个服务器命令。差异不会,我会为此推荐谷歌。

如果您只想使乌龟自动化,我可能会离题。

于 2010-01-11T19:20:33.170 回答