教程看了很多遍,总觉得还是漏了点什么。 我将尝试给出一个具体的场景。请帮我找到我在哪里 错误的。
假设我有一个每个人都认为是“中心”的存储库。这个 意味着每个新开发人员都从它克隆并从中拉取/推送到它。 Central 包含三个文件夹-
- Infra(即将成为共享代码)
- .hg
- infra.txt
- 开发人员1
- dev1.txt
- .hgsub(其中有一行 --> infra = (path of infra) )
- 基础设施(子仓库)
- .hg
- infra.txt
- 开发人员2
- dev2.txt
- .hgsub(与 dev 1 相同 - infra = (path to infra) )
- 基础设施(子仓库)
- .hg
- infra.txt
现在,假设一位开发人员克隆了 dev1,而另一位开发人员克隆了 dev2。 我看到的是,当 dev1 的开发人员更改基础设施并推送 中央存储库的更改,dev2 开发人员知道的唯一方式 关于 infra 中的更改是手动搜索传入的更改集 infra 作为子存储库。一般来说,这意味着如果我的项目有很多 子存储库(它们本身可能包含更多子存储库), 我无法知道这些变化,除了检查我的 手动子存储库。
我认为这不是工作的方式...... 谁能帮忙?
提前致谢
埃亚尔
最佳答案
我想我找到了更好的东西。 在检查存储库中的传入变更集时,您可以使用 --subrepos 标志。
这将递归地搜索传入的变更集,并向我们展示可以拉取变更集的子存储库。
这样一来,就可以控制更改了哪些子存储库,以及她是否想要在这些子存储库中获取最新的文件。
关于Mercurial 子存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5271051/