级联git存储库,SoC Linux内核 [英] Cascaded git repositories, SoCs Linux kernel

查看:257
本文介绍了级联git存储库,SoC Linux内核的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我打开这个问题是为了更好地理解下面讨论类型的项目中的
git存储库依赖关系。

例如,OMAP或MSM SoC硬件平台从ARM架构与Linux内核开发的组织方式相同:
Linus vanilla内核存储库>> ARM适配内核存储库>> vendor's SoC适配内核存储库。
>>表示直接关系在父克隆仓库之间。

因此,如果上述情况属实,则应该存在级联仓库。本地存储库是从供应商的SoC内核存储库克隆的,用于补丁开发或类似于级联的最新阶段。
我猜,由于建议从平台项目库,克隆,而不是直接的香草Linux操作系统。



Linaro的中上游化给Linus树延迟似乎是ARM的协作平台。代码极光论坛似乎是一些额外的合作平台。

这两者都可能为所提供的平台的最终内核做出贡献。

可能在那里存在更多的开源协作平台,而不是上述两个以上的
并涉及级联。



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

  git分支-r 

以下列形式提供了远程跟踪分支列表项目:

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

例如

 起源/ Linaro的/ Linux的Linaro的稳定/ v3.14 /主题/ AOSP 

问题2
问题是所有路径级别引用?难道这些父树枝,或者更确切地说,父遥控器?


解决方案

你有什么区别首先遥控器来自分支的索引。所有使用 remotes 的操作都是由 git remote ...



<因此,答案1 git remote -v 会显示您订阅的遥控器的详细列表。 答案2 有点模糊,因为你必须参与你正在谈论的项目。所以,通常第一部分是远程的,第二部分是在这个特定的远程分支。请注意,顺便提一下,分支名称可以包含'/'字符,但它与任何实际路径无关!



我如何处理存储库(由于git 2.5.0+的新特性,我必须改变这一点)是克隆这个项目的主存储库, origin 作为 linux-kernel ,然后添加遥控器,例如我将 stable 添加为 linux-stable linux-next 。这是一个裸仓库(没有工作目录)。然后我为这个创建一些额外的参考存储库。而且我还要添加我想要的这些存储库的其他遥控器。通常我有几个基于子系统的树被添加到其中一个存储库(比如 spi tty-next )以及另一个存储库中的实验性内容。

  + ---------------------------- + ---- ----------------------- + 
| | |
| + ------ v ------ + |
| |参考| |
| | | |
| |起源| |
| + ------------- + | | + ------------- + |
| |主题REPO1 | |稳定| |主题REPO2 | |
| | | | | | | |
+ --- +(参考)| |下一页| | (参考)+ - +
| | + ------------- + | |
|分支X | |分支Y |
+ ------------- + | |
| spi |
| |
| tty-next |
+ ------------- +


I open this question in order to get more understanding of the git repository dependencies in project of the kind addressed below.
As for instance the OMAP or MSM SoC hardware platform evolve from ARM architecture the same way the development of Linux kernel might be organized: Linus vanilla kernel repository >> ARM adaptations kernel repository >> vendor's SoC adaptations kernel repository.
">>" means the direct relation between parent-clone repositories.
So, if the above is true, there should exist a cascade of repositories. The local repository cloned from vendor's SoC kernel repository for purposes of patch development or similar as the latest stage in cascade. I guess, due to delays in upstreaming to Linus tree it is recommended to clone from platform project repository, not directly the vanilla Linux.

Linaro seems to be collaborate platform for ARM. Code Aurora Forum seems to be some additional collaborate platform.
Both might contribute to the final kernel for the addressed platform.
Possibly there exist more Open Source collaborate platform than those two above and involved in the cascade.

Question 1 How to list the remotes of my repository's remote?

git branch -r

provides the list of remote tracking branches with list item also in following form

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

Question 2 The question is what do all the path level refer to? Are these the parent branches, or rather parent remotes?

解决方案

First of all you have to distinguish remotes from branches in index. All operations with remotes are made by git remote ….

And thus the answer 1. git remote -v will show you detailed list of remotes you are subscribed to.

The answer 2 a bit fuzzy since you have to be involved a bit into the project you are talking about. So, usually first part is remote, second one is branch in this specific remote. Note, by the way, that branch names can contain '/' characters but it has nothing to do with any actual path! Just a convenient name let's say.

Way how I deal with repositories (I have to change this a bit because of new feature of git 2.5.0+) is to clone master repository of the project, origin as linux-kernel, then I add remotes, for example I have stable as linux-stable, and next as linux-next. This is a bare repository (no working directory). Then I create few additional reference repositories to this one. And I add as many additional remotes I want to this repositories. Usually I have few subsystem based trees added to one of repository (like spi or tty-next) and my experimental stuff in another repository.

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

这篇关于级联git存储库,SoC Linux内核的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆