级联git存储库,SoC Linux内核

时间:2015-12-07 12:04:16

标签: git linux-kernel

我打开这个问题是为了更多地了解 下面讨论的项目中的git存储库依赖项。
例如,OMAP或MSM SoC硬件平台从ARM体系结构发展出来,就像组织Linux内核的开发一样: Linus vanilla kernel repository>> ARM改编内核存储库>>供应商的SoC适应内核存储库 ">>"表示父克隆存储库之间的直接关系 因此,如果上述情况属实,则应该存在级联的存储库。从供应商的SoC内核存储库克隆本地存储库,用于补丁开发或类似于级联的最新阶段。 我想,由于Linus树上游的延迟,建议从平台项目存储库中克隆,而不是直接从vanilla Linux中克隆。

Linaro 似乎是ARM的协作平台。 Code Aurora论坛似乎是一些额外的协作平台 两者都可能有助于寻址平台的最终内核 可能存在比上述两个更多的开源协作平台 并参与了级联。

问题1 如何列出我的存储库遥控器的遥控器?

git branch -r

还提供了包含列表项的远程跟踪分支列表,其格式如下

origin/level_2-path-element/level_1-path-element/level_0-path-element/branch-name  

e.g。

origin/linaro/linux-linaro-stable/v3.14/topic/aosp

问题2 问题是所有路径级别是指什么?这些是父母的分支,还是父母的远程分支?

2 个答案:

答案 0 :(得分:1)

首先,您必须在索引中区分remotesbranchesremotes的所有操作均由git remote …生成。

因此回答1 git remote -v会向您显示您订阅的遥控器的详细列表。

回答2 有点模糊,因为你必须参与你正在谈论的项目。所以,通常第一部分是远程的,第二部分是在这个特定的远程部分。顺便提一下,请注意,分支名称可以包含' /' 字符,但它与任何实际路径无关!我们可以说一个方便的名字。

我如何处理存储库(由于git 2.5.0+的新功能,我必须稍微改变一下)是克隆项目的主存储库, origin 作为 linux -kernel ,然后我添加了遥控器,例如我将 stable 作为 linux-stable next 作为 linux - 下。这是一个裸存储库(没有工作目录)。然后我为这个创建了一些额外的参考资料库。我在这个存储库中添加了许多额外的遥控器。通常我将几个基于子系统的树添加到其中一个存储库(如 spi tty-next )和我在另一个存储库中的实验内容。

+----------------------------+---------------------------+
|                            |                           |
|                     +------v------+                    |
|                     |   REFERENCE |                    |
|                     |             |                    |
|                     |    origin   |                    |
|   +-------------+   |             |   +-------------+  |
|   | TOPIC REPO1 |   |    stable   |   | TOPIC REPO2 |  |
|   |             |   |             |   |             |  |
+---+ (reference) |   |     next    |   | (reference) +--+
    |             |   +-------------+   |             |
    |   branch X  |                     |   branch Y  |
    +-------------+                     |             |
                                        |     spi     |
                                        |             |
                                        |   tty-next  |
                                        +-------------+

答案 1 :(得分:0)

在给定的情况下,git不用于项目中的活动贡献。 soc供应商提供其公共git URL和所有需要的引用。我的项目包括从git中获取的快照源(fetch不是我的工作),但是受版本控制,但不是git的VC。然后我的工作是编译和构建自己的代码和其他分发渠道收到的其他组件的来源。每次soc供应商由于基线的变化而提供对公共git状态的新引用时,我在项目中将其作为准备使用的源提供。

问题是如果提供补丁或错误修复,soc供应商并不总是足够快。因此,我们的想法是获得更多的独立性 - 因为供应商提供的补丁大多来自公共git存储库,它应该可以有点独立。为什么不自己浏览soc供应商使用的公共存储库的历史记录,看看是否需要在其他分支上进行更改。然后检查该发现是否有资格在我的项目中应用。当然,有些情况需要改变,不能在社交供应商的公共git的任何分支上找到,因为没有回购,没有分支。

因此,我将soc供应商使用的公共仓库克隆到我的私人仓库。私人仓库中没有创建本地分支机构。 Mines私人仓库将用于浏览历史记录并搜索所需的东西 - 在开发过程中没有积极的协作。分支名称可以是有助于判断在其上找到的补丁适合在我的SoC /项目中应用的标准之一。问题是repo及其历史显示了大量的分支。通常我不得不想知道远程跟踪分支列出的特定分支与使用的soc或board有什么共同之处。可能的原因可能是我的遥控器(此刻我的本地仓库只有一个遥控器)从遥控器继承了它们。

此外,我想知道soc供应商是否直接从Linux树上公开回购克隆,或者更确切地说来自ARM改编公共回购,因为SoC基于ARM内核。 因此,问题1 最初询问。那个问题读取了我的私人仓库使用遥控器的遥控器。所以请理解我无法接受你的答案作为答案。

注册问题2 回答:     产地/ Linaro的/ Linux的Linaro的稳定/ v3.14 /主题/ AOSP 我从你的回答中得出结论,两个斜杠之间的特定元素是一个分支引用。这是一个单独的遥控器上的分支层次结构,是我的私人仓库的远程吗?或者它是远程回购(级联)的层次结构?

通过收集所解释的知识,我的目标是在浏览历史时折扣完全不相关的分支。我的目标是更多地定位我的项目中使用的分支与其他现有分支的关系。

我使用Pro Git书来熟悉git。 这本书没有回答我的所有问题。