【发布时间】:2010-01-11 19:02:34
【问题描述】:
我有一大堆有细微差别的文件。我们使用 subversion 进行源代码控制,我喜欢 TortoiseSVN for windows 附带的 Merge/Diff 实用程序。我可以使用这个实用程序手动比较/合并两个文件。我的问题是:我如何以编程方式将两个文件以与此实用程序相同的方式合并在一起(并忽略并标记有冲突的文件)?
【问题讨论】:
标签: .net svn tortoisesvn diff tortoisemerge
我有一大堆有细微差别的文件。我们使用 subversion 进行源代码控制,我喜欢 TortoiseSVN for windows 附带的 Merge/Diff 实用程序。我可以使用这个实用程序手动比较/合并两个文件。我的问题是:我如何以编程方式将两个文件以与此实用程序相同的方式合并在一起(并忽略并标记有冲突的文件)?
【问题讨论】:
标签: .net svn tortoisesvn diff tortoisemerge
这可能会有所帮助:Automating TortoiseMerge
【讨论】:
我建议使用支持已建立的合并算法的 .NET 库之一,例如这个问题中的建议:Any decent text diff/merge engine for .NET?
不知道质量,我也偶然发现了这个:http://razor.occams.info/code/diff/
【讨论】:
我知道的几个选项:
我不确定这两个颠覆项目是否实现了合并,但我想这是一个服务器命令。差异不会,我会为此推荐谷歌。
如果你只是想自动化乌龟,我可能会离题。
【讨论】:
在没有人为干预的情况下合并两个没有冲突的文件可能不是一个好主意,除非您可以很容易地分辨出实际的更改是什么,例如拥有两个文件的之前版本(就像 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
那么,这里的正确结果是什么?
【讨论】: