2011-04-04 60 views
2

我正在尋找解決一些合併衝突時通過不同分支工作的可能方式。創建diff,忽略前哨線之間的差異

某些文件(特別是版本號)中的某些信息不是不可能分佈在不同的分支周圍,所以我正在尋找某種方式來輸出差異,忽略定義好的定點線之間的差異文本, d想知道是否有任何東西沒有編碼我自己的解決方案。

那想什麼我:假設看起來像

some text 
DIFF_IGNORE_START 
foo bar 
DIFF_IGNORE_END 
some other text 
one 

some text 
DIFF_IGNORE_START 
different text 
DIFF_IGNORE_END 
some other text 
two 

我想兩個源文件的差異是

--- original 2011-04-04 15:34:06.000000000 +0200 
+++ modified 2011-04-04 15:35:13.000000000 +0200 
@@ -3,4 +3,4 @@ 
foo bar 
DIFF_IGNORE_END 
some other text 
-one 
+two 

我需要一個解決方案,允許被忽略的塊也有不同的大小。

回答

0

一種方式來實現,這將是通過一個custom diff driver,在.gitattributes文件,宣告一個特殊的diff腳本,這會:

  • 去除根,源和目的版本每DIFF_IGNORE_xxx部分,用虛擬替換它們內容(三個版本之間始終相同)
  • 與修改後的版本
+0

掛鉤使用Git進行差異是比較容易的部分,但自定義DIFF驅動程序不一樣簡單您認爲 - 您無法用虛擬內容替換兩個標籤之間的內容,因爲這通常會在diff中作爲diff範圍出現。 – 2011-04-05 13:38:57