我正在开发一项由多个“位”组成的服务。它将是开源的,所以我想让人们很容易看到整个项目,检查它,做出改变等,而不是给人们一个不同的项目列表来检查。
想象一下,我有一个名为'Flintstones'的项目,它由'Barney','Wilma'和'Bambam'组成。
据我所知,如果我使用子树进行此操作,那么如果有人检查'Flintstones',他们会看到所有内容,但如果他们对Barney中的代码进行了更改,则必须将该代码合并回Barney存储库。所以这很糟糕,因为人们会改变代码而不知道它是一个子树还是不知道它。
所有子模块示例都谈到它们被用于在项目中嵌入公共代码,但我是正确的说,如果一个人检查'Flintstones'并在'Barney'文件夹中进行更改,那么只需定期执行承诺并推动那个改变去了Barney?这种情况下唯一的缺点是他们必须使用额外的语法检查项目以结帐子模块吗?
我想将其拆分出来,以便仅针对已更改的项目部分触发和执行构建,因此对Barney的更改导致仅在我的CI服务器上构建和测试Barney(在这种情况下为bamboo)。随着时间的推移,不同的人将在代码的不同模块上工作,而不必了解其他模块。