2012-10-10 87 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