是否可以强制“diff”在指定点同步?

时间:2015-07-06 14:07:21

标签: linux cygwin diff

我正在合并包含相同功能的不同版本的源文件。这些功能在不同文件中的顺序不一定相同。例如,foo.c可能包含baz()后跟quux(),而bar.c包含quux()后跟baz()

我想强制diff在我正在处理的函数的第一行同步,以便我只能看到该函数的变化。有没有办法用GNU diff(或另一个diff实用程序)来做到这一点?我有三个解决方法,其中没有一个很好:

  1. 将函数复制到单独的文件和diff这些文件。缓慢而繁琐,加上风险复制和粘贴错误。

  2. 将感兴趣的函数移动到每个文件的顶部,然后区分文件。有点容易,但仍然很耗时。

  3. 在每个文件前添加一块lorem ipsum文本。 (这是我目前正在使用的那个。)不需要移动代码,但是嘿 - 为什么我必须做工作机器完全有能力做? :)

1 个答案:

答案 0 :(得分:1)

不幸的是,gnu diff不会这么做,尝试在它前面使用split根本不可行。

一些比较工具可以让你强行匹配所谓的"同步链接",Araxis会这样做(使用Linux上的Wine),比如Beyond Compare。