我有三個PHP文件:有差異/補丁合併PHP變化
- 1.PHP - OSS軟件的1.0版本(香草)
- 1a.php - OSS軟件的1.0版本(帶的定製)
- 2.PHP - OSS軟件的1.1版本(香草)
我想用比較/補丁(或類似)創建一個單一的補丁文件,將合併我對1.0版本所作的修改在版本1.1中進行了上游更改。達到此目的的最佳方法是什麼?
非常感謝。
我有三個PHP文件:有差異/補丁合併PHP變化
我想用比較/補丁(或類似)創建一個單一的補丁文件,將合併我對1.0版本所作的修改在版本1.1中進行了上游更改。達到此目的的最佳方法是什麼?
非常感謝。
使用此:
$ diff -u 1.php 1a.php > customizations.patch
,這將給你的所有的香草和文件的1.0版定製副本的修改的標準差異。
你可以嘗試將這些更改應用到新的文件,2.PHP,像這樣:
$ patch -p0 2.php customizations.patch
但是請注意,這可能會失敗,有很多拒絕帥哥的,如果源代碼變化太大了。不過,獲得統一差異可能會很有用,因爲您可以手動重新整合自定義以適應新的源代碼。
我會做什麼,如果可能的話,就是獲取自由軟件項目使用的版本控制庫的本地副本。然後,創建一個分支並整合您的自定義,然後通過將上游提交合併到您的分支中來確定是否可以推進這些工作。沒有看到所有涉及的東西,我都不能告訴你這將是一個微不足道或複雜的過程,但它可能比僅僅使用diff和patch更容易。
注意,這將不適用於多個文件;如果您以後需要使用多個文件來完成此操作,則需要在兩個不同的目錄樹中對兩個不同的文件集(具有相同的文件名)使用diff。我認爲現在提及這可能不是一個壞主意,以防萬一它證明你將來遇到的情況。
謝謝你,差異/補丁方法完美運作。儘管幾個hunk失敗了,但手動合併相當簡單。 – gjb 2010-12-10 21:14:07
非常歡迎。 – 2010-12-11 00:34:25