如果我在代码中添加一个函数,我的差异如下:
}
/**
+ * My new function docblock.
+ */
+function my_function($foo) { }
+
+/**
* The next function's docblock.
*
有没有办法阻止差异化呢?
我尝试了git的--patience标志但产生了相同的结果。
答案 0 :(得分:0)
如果你期望的是一个更好的差异,它会“理解”在评论块比较中的存在并使diff以不拆分这些块的方式对齐,那么你现在就不在了。
“diff”的内部算法自动将块对齐到具有最大数字的行,其差异仍为“真”。例如,而不是
}
+/**
+ * My new function docblock.
+ */
+function my_function($foo) { }
+
/**
* The next function's docblock.
*
Diff将始终返回您在问题中描述的结果。许多基于GNU diff的工具都遇到了这个问题。
答案 1 :(得分:0)
你想要的是一个比较程序结构的工具,而不是“文本行”。
使用编程语言的结构作为指南,查看我们的SmartDifferencer工具,它们比较程序的源文本。有许多语言的SmartDifferencer(C ++,C#,Java,COBOL,......)
对于OP的例子,它应该只是注意到已经添加了函数(及其docblock)。