Linux 如何用git组织monotree?
我最近遇到了GregKroahHartman的一篇文章,内容是关于为什么Linux内核没有一个稳定的API,以及内核存储库是如何组织为单树的。当我与一位朋友讨论这篇文章时,很明显我们对Linux 如何用git组织monotree?,linux,git,monorepo,Linux,Git,Monorepo,我最近遇到了GregKroahHartman的一篇文章,内容是关于为什么Linux内核没有一个稳定的API,以及内核存储库是如何组织为单树的。当我与一位朋友讨论这篇文章时,很明显我们对树一词的含义有不同的理解: 树指项目的不同子文件夹 它指的是git主分支的不同分支 在第一种情况下,贡献者不会签出整个项目,例如Linux内核,而只签出一个子文件夹。然后可以将它们与例如git子树相结合 在第二种情况下,贡献者必须检查整个项目,并基本上创建monorepo的分支 那么monotree中的tree指的
树
一词的含义有不同的理解:
树
指项目的不同子文件夹git子树
相结合
在第二种情况下,贡献者必须检查整个项目,并基本上创建monorepo的分支
那么monotree中的
tree
指的是什么?如何使用git将项目组织为monotree 让我们在这里做一些笔记:
- 词组monotree,甚至部分单词mono,从未出现在中
- 这篇文章出现了七次单词树
- 在这七个事件中的六个事件中,这里的整个短语是主内核树。一个没有使用这个完整短语的引用只是说这棵树,但显然与其他六棵树具有相同的意图
- 您已将其标记为(以防标记更改)
1由于缓存项
ce\u namelen
字段具有32位整数类型,因此存在长度限制。因此,任何名称组件的长度都不能超过4GB左右。实际上,没有一个应该超过255字节,但据我所知,Git中的树对象并没有强制执行任何特定的限制
Linux中的文件系统树实际上只是一个字符串,用于标识文件系统中的实体,尽管命名目录以外的任何内容都会导致一个退化树,其中只有一个节点。不过,通过命名目录,您可以暗示任何解释此字符串的人都应该读取目录的内容,这些名称(通过与标识目录本身的字符串连接)命名了另一个Linux文件系统树,可能是一个带有单个文件或设备节点的退化文件系统树。这种递归枚举导致建立一个最小连通图,就像Git树对象一样。(也许毫不奇怪,Linux目录对象在名称上的约束与Git树对象基本相同,尽管它们通常具有更小的最大组件名称长度,通常为255字节或更少。)
最后,本文中使用的短语“主内核树”指的是Linux内核存储库Linus Torvald的Git存储库,用于Linux内核及其周围的整个生态系统。关于细节有很大的争论余地。在这里,我将只包含一个指向此特定内容的链接,它似乎是对截至撰写之时(2016年8月)事态的合理总结。让我们在这里做一些注释:
- 词组monotree,甚至部分单词mono,从未出现在中
- 这篇文章出现了七次单词树
- 在这七个事件中的六个事件中,这里的整个短语是主内核树。一个没有使用这个完整短语的引用只是说这棵树,但显然与其他六棵树具有相同的意图
- 您已将其标记为(以防标记更改)