2012-10-10 110 views
1

我正在嘗試在Linux股票內核(linus樹)上工作。但是由於我的Linux機器有一些限制,我無法通過git來拉樹。所以我從kernel.org下載最新的rc候選源文件,然後創建我自己的git存儲庫,將基本源代碼作爲主文件。現在我從它創建了一個分支並嘗試修復一些源。我已經能夠通過git format-patch創建一個補丁並想提交它。再次由於沒有互聯網連接可用性,我必須將補丁文件傳輸到其他機器併發出git send-email命令。我的問題:
1.我的方法是否正確?我的意思是補丁不是直接生成git克隆源,而是在我的本地存儲庫中生成的(但是,基本源與linus樹相同)
2.我看到在生成的補丁中最後一行有一些數字。內核源代碼:提交補丁

例如

-
1.7.7.3
不知道它是什麼一回事,它在,如果我的變化是由維護者批准在該基地施加源影響?

回答

2

只要修補程序適用於您期望維護人員將其應用到樹上,就可以發送一個針對除主Git樹以外的其他內容生成的修補程序,這很好。如果你下載了最終版本(比如3.6),然後在合併窗口(從Linux發佈3.6到發佈3.7-rc1)之間發送補丁,那麼我可以看到你在工作流程中遇到問題的一種情況是。在合併窗口中,Linus的樹上添加了許多更改,如果其中一些更改觸及您修補的相同位置,則可能需要調整您的修補程序。

在任何情況下,git format-patch都是創建您發出的補丁的絕佳選擇,因爲您可以避免許多初學者遇到的補丁格式問題。另外,使用git send-email發送它也是一個好主意 - 出於同樣的原因 - 您可以避免讓郵件客戶端弄亂空白,將其轉換爲HTML,或者其他任何令人討厭的stuf。

最後兩行一樣

-- 
1.7.7.3 

只是表明生成補丁文件git的版本。當該補丁應用於git apply,git am,patch -p1或其他任何內容時,這兩行將被忽略並丟棄,因此它們不起作用。

綜上所述,我會建議您更新開發環境,以便下載完整的git樹。擁有多年的歷史對於理解代碼非常有用,更新到樹的最新狀態要快得多,並且只需要下載增量更改即可。用於下載和修補源代碼的ketchup工具也很有用,雖然不如在我看來直接使用git那麼好。

祝你好運提交你的補丁!

+0

感謝羅納德爲您寫出如此詳細的答案。這清除了我的懷疑:) – Adil