使用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.
有人能幫助我嗎?我找不到解決方案。
使用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.
有人能幫助我嗎?我找不到解決方案。
您沒有使用正確的語法。使用這樣的:
$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
。這很容易記住。
感謝您的幫助 – neoben
您應該使用統一的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
感謝您的幫助 – neoben
如果你堅持一個「差異」文件的人else生成,它是一個「正常」的差異(即,不是「統一」(-u),而不是「上下文」(-c)差異),那麼你仍然可以使用'patch'和'-n'選項(正常差異)。如果補丁中有多個文件,則補丁申請過程中必須手動輸入文件名。 – michael