如何在Mercurial中的子报表进行提交/推送时修复主仓库

时间:2016-07-18 19:37:07

标签: mercurial mercurial-subrepos

所以我有一个主要的Mercurial仓库,由3个子仓库组成。

通常我理解的提交/推送的正确方法如下:

hg commit -Sm 'Fixed a bug' # This commit was done from the main repo
hg push

我犯了一个错误,并从子回购中提交/推送:

hg commit -m 'Fixed a bug' # This commit was done from a sub-repo
hg push

现在,另一个将拉/更新主仓库的编码器将不会在子仓库中看到我的更改。

正确的Mercurial解决方法是什么?

手动修改主仓库中的.hgsubstate文件并提交/推送它?

如果是这样,我理解ID的第一部分是最后一个子仓库变更集的提示,但ID的其余部分呢?它是如何产生的?

OR

等待下一次提交/推送,以便使用最新的变更集修复.hgsubstate文件?

OR

提交并推送虚拟变更集?

OR

别的......

1 个答案:

答案 0 :(得分:1)

我不知道我是否正确理解了您的问题,但对我而言,似乎正确的方法是进入子程序执行拉动和更新,然后步出主回购并执行提交/推送。

请参阅https://www.mercurial-scm.org/wiki/Subrepository#Synchronizing_in_subrepositories