问题陈述
到目前为止,每个人都可以访问整个代码库.现在我需要强制人们只获取他们将要处理的模块的代码,对于其他模块,他们将获得lib中的库.假设我们现在有两个模块
thinkbot(HEAD)
- > assemblebot(tree/subdir)
-> include -> source -> lib -> obj
- > vpl(tree/subdir)
-> include -> source -> lib -> obj
- >包括
- > source - > bin`
现在,如果某人正在使用vpl模块,他将获得包含代码的include和source文件夹,并且他将从assemblebot模块获得一个lib.因此,当他从HEAD进行更改和编译时,事情会从他身上发挥作用.
伙计们如何在Git中实现这一点?关于阅读什么的指针?命令片段会很棒吗?
目前,我能想到的唯一方法是使用子模块.两个模块(assemblebot,vpl)每个都是一个子模块,树的其余部分都在超级项目中.
这实际上意味着这两个模块必须位于不同的存储库中,然后才能存储在主存储库中git submodule init git://foo.com/assemblebot.git
.
我不确定这是否值得整体努力.这不是git的优点之一(实际上它是我认为唯一需要改进的东西).
对部分检查的更好支持正在进行中(狭窄和稀疏的克隆).
编辑:考虑到vpl和assemblebot依赖于include和source,或许最好将include和source作为vpl和assemblebot存储库的子模块.但是,这些不是单独的项目,git所做的是跟踪项目内容.我没有看到为什么这些模块实际上应该分开的原因.也许只是告诉开发人员不要触摸对方的代码?