2011-09-12 32 views
2

如果我添加一個函數來我的代碼,我的差異是這樣的:我該如何獲得差異來停止mangling功能docblocks?

} 

/** 
+ * My new function docblock. 
+ */ 
+function my_function($foo) { } 
+ 
+/** 
    * The next function's docblock. 
    * 

有沒有辦法從這個壓延停止差異?

我試過git的--patience標誌,但產生相同的結果。

回答

0

如果您期望得到一個更好的差異,它可以「理解」比較塊中的存在,並使差異以不分割這些塊的方式對齊,那麼您目前處於關閉狀態。

「diff」的內部算法會自動將塊對齊到最大編號的行,差異仍然爲「true」。例如,而不是

} 

+/** 
+ * My new function docblock. 
+ */ 
+function my_function($foo) { } 
+ 
/** 
    * The next function's docblock. 
    * 

差異將始終返回您在問題中描述的結果。許多基於GNU diff的工具都會遇到這個問題。

0

你想要的是一種比較程序結構而不是「文本行」的工具。

請參閱我們的SmartDifferencer工具,它們使用編程語言的結構作爲指導,比較程序的源文本。有許多語言的SmartDifferencer(C++,C#,Java,COBOL,...)

對於OP的例子,它應該簡單地說明函數(和它的docblock)已被添加。