2012-03-21 79 views
1

如何交互式地将单个差异文件拆分为两个或多个差异文件?交互式拆分差异

我使用mercurial hg diff命令来生成差异。我想将一个大的更改集分成多个更小的更改集,其中的代码更改类似。这只能交互地完成。我希望得到每个更改或更改行的提示,并选择要保存的多个文件中的哪一个。最好有选项,如果需要内联编辑。

回答

1

我不确定您是否可以直接使用diff文件,但是如果您应用diff文件以便获得该文件的两个不同版本,则可以使用KDiff3进行交互式合并,以便在其中选择哪些更改你要。您可以从源文件中选择逐字复制,也可以手动编辑结果。

KDiff3 session example

如果你开始说file_100.c和file_200.c的开始/结束点,你想它已经分裂成三个独立的改变(例如,你想有说file_150.c和一个file_175.c版本),然后合并file_100.c和file_200.c并保存输出到file_150.c。下一步是将file_150.c和file_200.c合并到file_175.c中。

如果您希望主要从其中一个版本中选择更改,那么您只需指定该文件两次,然后与自动选择的更改进行三向合并(如果您有一个共同的基础,那么当然也可以做一个真正的3路合并)。

KDiff3是一个很棒的工具,我强烈推荐。

+0

谢谢。我已经想过这样做。我试图避免不止一次通过代码。另外,还有很多文件涉及到,我宁愿不必手动打开每个文件。我可以创建一个脚本来提取已更改文件的列表,并在kdiff3中逐个打开它们,这是我认为我要去的方式,除非我得到更好的答案。 – SubOne 2012-03-23 17:28:29