如何镜像私有gitolite服务器中的官方Linux内核树?

时间:2012-05-16 21:25:17

标签: git svn linux-kernel gitolite

我们使用嵌入式ARM Linux系统,并拥有一些基于SBC的产品,并由他们控制自定义硬件。因此,我们需要开发自定义内核驱动程序,有时需要调整现有驱动程序。自从我们开始使用Subversion以来,所选择的策略是使用“供应商分支”来保持使用的vanilla内核,然后为每个产品创建一个分支,我们将为SBC应用所需的补丁并进行自己的修改,类似于https://stackoverflow.com/q/2312984/1007502

中建议的内容

值得庆幸的是,几个月前我们决定将我们的项目迁移到git,因此我们设置了一个gitolite服务器,用于在开发团队之间共享项目,根据需要从SVN迁移项目,并通过git获得更多的安慰。在Linux内核的特殊情况下,我们认为选择使用我们的gitolite服务器作为远程开发我们的项目很有意思,但是我们希望能够从官方树中获取更新的内核并最终贡献一些东西。当它达到允许的状态时返回。

在我自己的机器上,我可以看到如何克隆官方内核树并为我们的产品创建专用分支,根据需要在新内核上重新定义它们(如here);但我有点迷失在如何将官方内核树导入gitolite中的方式,开发人员可以从它而不是官方内核存储库推送/拉出,同时也能够与后者保持同步。

这是从我们机器上的官方树获取更新并将它们推回到我们的私有gitolite服务器还是有更直接的方法?

编辑:(澄清问题)
主要问题是:虽然我知道如何初始化一个空库推未经跟踪代码到gitolite,我不知道该怎么做的东西,我从另一个Git是,如官方内核树

一旦我在我的机器上克隆了它,将它移动到私有gitolite服务器的过程是什么?

然后,如何将这个现在的“私有”内核树与官方内核保持同步?

这个想法是开发人员应该只推送到私有树,最终只发送补丁到官方树,如果有的话。

2 个答案:

答案 0 :(得分:2)

克隆原始内核源代码:

git clone $KERNEL_URL

为您的私人gitolite存储库添加一个遥控器,将其命名为gitolite:

git remote add gitolite $GITOLITE_URL

创建您的私人分支

git checkout -b our-branch

将您的私人分支推送到您的私人gitolite存储库

git push gitolite our-branch

你已经完成了。

  

这是从我们机器上的官方树获取更新并将它们推回到我们的私有gitolite服务器还是有更直接的方法?

基本上就是这样。

答案 1 :(得分:2)

根据我的理解,你有2个感兴趣的遥控器:

  • 主要内核存储库(比如Github中的那个)
  • 你的gitolite存储库

这其实非常简单。您只需要使用git remote add ...在本地存储库(您可能已经拥有gitolite)中添加两个遥控器。然后,您需要从一个遥控器获取内容,将它们与您的代码合并,如果您满意,请将其推送到另一个。这个过程完全相同,从vanilla内核更新并应用到您自己的遥控器或其他方式......

...除了,你不能推送到不属于你的存储库(当然)。因此,当回馈vanilla内核时,您需要发送拉取请求并说服Linus或其中一名仆人接受您的请求。 (注意:Linus不接受github pull请求)