Mercurial 在中央服务器上保持子repo同步

Mercurial 在中央服务器上保持子repo同步,mercurial,subrepos,mercurial-subrepos,Mercurial,Subrepos,Mercurial Subrepos,我一直认为我了解Subrepo以及如何让它们为我的团队工作流程工作,但显然我不了解,因为每次我尝试实现一些基本的工作流程时,总会有一些事情不正常 我已经阅读了几乎所有关于网上次级回购协议的内容,我遵循了人们发布的所有琐碎的例子,但当我尝试做一些更复杂的事情时。或者也许我确实非常理解它,而我正在尝试做的只是不太好用 让我们把最基本的东西放在一边。假设我有一个远程“受祝福”的回购集合 http://acme.com/BlessedRepos/ProjA

我一直认为我了解Subrepo以及如何让它们为我的团队工作流程工作,但显然我不了解,因为每次我尝试实现一些基本的工作流程时,总会有一些事情不正常

我已经阅读了几乎所有关于网上次级回购协议的内容,我遵循了人们发布的所有琐碎的例子,但当我尝试做一些更复杂的事情时。或者也许我确实非常理解它,而我正在尝试做的只是不太好用

让我们把最基本的东西放在一边。假设我有一个远程“受祝福”的回购集合

http://acme.com/BlessedRepos/ProjA
                            /LibA
                            /LibB
因此,我将
/ProjA
克隆到
C:\ProjA
并将
/LibA
克隆到
C:\ProjA\LibA
/LibB
克隆到
C:\ProjA\LibB
。我使用创建我的
.hgsub
文件

LibA = http://acme.com/BlessedRepos/LibA
LibB = http://acme.com/BlessedRepos/LibB
我承诺一切。然后我可以按一下ProjA,一切都好了

因此,现在我的团队中有人可以将
/PrjoA
克隆到
C:\dev\ProjA
,它也将
LibA
LibB
作为子报告。这个人可以像我一样轻松地从“受祝福的回购”中推/拉。到目前为止还不错

现在,我说:好的,ProjA团队,停止推动受祝福的回购协议,这是我在回顾你的工作后要做的。从现在开始,我希望你们都将更改推送到ProjA-dev和ProjA-QA远程回购,位于:

http://acme.com/Dev/ProjA
http://acme.com/QA/ProjA
这是我们停下来的地方。正在尝试推送到
http://acme.com/Dev/ProjA
只会推送
/ProjA
,而
/ProjA/LibA
/ProjA/LibB
会被推回其在受祝福回购协议中的原始位置,而不是
http://acme.com/Dev/ProjA

现在,我可以将我的
.hgsub
文件设置为
LibA=../LibA
。这在一开始是可行的,但如果我从受祝福的repo克隆
ProjA
,它就无法获得
LibA
LibB
,我相信,因为它希望找到本地repo
LibA
LibB
作为我克隆的
ProjA
repo的兄弟。我的意思是如果我要克隆到
http://acme.com/BlessedRepos/ProjA
C:\Test\ProjA
它将失败,因为它希望在
C:\Test\LibA
找到现有的回购

我还可以将我的hgsub设置为
LibA=LibA
。但是,当你试图推动受祝福的回购协议时,这样做失败了,因为
LibA
不是受祝福空间中的
ProjA
嵌套。我可以创建它们,但我再也不会回到
http://acme.com/BlessedRepos/LibA
,仅适用于
http://acme.com/BlessedRepos/ProjA/LibA
,然后,这似乎已经挫败了次级回购的初衷

我很确定,如果我还有一些脚本可以运行的话,我的第一个方法就可以工作了,这些脚本可以遍历
.hgsub
文件中的所有值,将它们从“受祝福的”远程位置更改为“dev”和“QA”位置,但这似乎不太理想


所以。如果有人真的对这些东西感兴趣,你能告诉我哪里出了问题,或者我如何使用subrepos实现我原来的工作流程,或者只是确认我正在寻找不适合subrepos的东西。如果有助于了解情况,我们可能有15-20个“产品/解决方案”和50个“共享”项目。15-20个产品中的任何一个都可以使用其解决方案中50个共享项目中的N个。

您缺少的关键部分是,您可以在服务器上多次公开
LibA
LibB
存储库,而不必在服务器上有多个副本。有关详细信息,请转到关于次级回购的另一个问题

另外,如果你有这样的问题,请随时与我们联系——这比在StackOverflow上写长文章要好得多,因为Mercurial社区根本就不是这样的。您也可以使用我们的邮件列表。

可能重复的