4

问题陈述

到目前为止,每个人都可以访问整个代码库。现在我需要强制人们只获取他们将使用的那些模块的代码,对于其他模块,他们将获得一个库,就像在 lib 中一样。假设我们现在有两个模块

思考机器人(头)

-> assemblebot(树/子目录)

 -> include

 -> source

 -> lib

 -> obj

-> vpl(树/子目录)

 -> include

 -> source

 -> lib

 -> obj

-> 包括

-> 源 -> bin`

现在,如果有人正在开发 vpl 模块,他将获得包含代码的包含和源文件夹,并且从 assemblebot 模块中他将获得一个库。因此,当他从 HEAD 进行更改和编译时,事情就会从他那里得到解决。

伙计们,我如何在 Git 中实现这个?关于阅读什么的指针?命令片段会很棒吗?

4

1 回答 1

8

目前,我能想到的唯一方法是使用submodules。这两个模块(assemblebot,vpl)每个都是一个子模块,树的其余部分将在超级项目中。

这实质上意味着这两个模块必须在单独的存储库中,然后在主存储库中git submodule init git://foo.com/assemblebot.git

我不确定这是否值得整体努力。这不是 git 的强项之一(事实上,这是我认为唯一需要改进的地方)。

对部分结账的更好支持正在开发中(稀疏的克隆)。

编辑:考虑到 vpl 和 assemblebot 依赖于 include 和 source,也许最好将 include 和 source 作为 vpl 和 assemblebot 存储库的子模块。但是,这些不是单独的项目,git 所做的是跟踪项目内容。我看不出这些模块实际上应该分开的原因。也许只是告诉开发人员不要碰其他人的代码?

于 2009-02-17T12:37:44.160 回答