2012-06-05 30 views
2

使用diff文件添加修補程序時遇到問題。 我創建使用兩個C源這樣的diff文件:使用diff文件添加修補程序時出錯

$diff gitrans.c.origin gifstrans > giftrans.diff 

當我嘗試使用diff文件來創建一個補丁我得到這個錯誤:

$patch -p1 < giftrans.diff 
patch: **** Only garbage was found in the patch input. 

有人能幫助我嗎?我找不到解決方案。

+0

如果你堅持一個「差異」文件的人else生成,它是一個「正常」的差異(即,不是「統一」(-u),而不是「上下文」(-c)差異),那麼你仍然可以使用'patch'和'-n'選項(正常差異)。如果補丁中有多個文件,則補丁申請過程中必須手動輸入文件名。 – michael

回答

2

您沒有使用正確的語法。使用這樣的:

$diff -aNur gitrans.c.origin gifstrans > giftrans.diff 

-a , treats it as text 
-N , treats absent files as empty, useful if you want 
    just changes of different existing files but not 
    for new files 
-u , output as unified. This is need to fix you problem 
-r , recursively, useful if you want diff directories 

我總是忘記的選項,所以我只記得這個詞aNur。這很容易記住。

+0

感謝您的幫助 – neoben

2

您應該使用統一的diff格式給出的片語法

$diff -u gitrans.c.origin gifstrans > giftrans.diff 
$patch < giftrans.diff 

或者與下面的補丁語法默認比較格式

$diff gitrans.c.origin gifstrans > giftrans.diff 
$patch gitrans.c.origin giftrans.diff 
+0

感謝您的幫助 – neoben

相關問題