我有一个回购,有两个子回购设置如下:
project/
|-- folder1
|-- folder2
|-- www [subrepo]
|-- dev [subrepo]
在机器A上,我检查了项目,www和dev,并修改了.hgsub。 我必须提交这个,以便hg(commit -S等)识别www和dev子存储库。
但是,机器B仅使用项目的www功能,所以它看起来像这样:
project/
|-- folder1
|-- folder2
|-- www [subrepo]
同样,机器B中的.hgsub只有一个www的条目,我必须将其提交给hg才能将其识别为subrepo。
我想做的是按下并拉到我的中央回购,但不要推/拉.hgsub。 否则,如果我提交并从机器A推送.hgsub然后从机器B拉出,我会自动获得dev subrepo以及我不想要的www subrepo。
所以我在机器B上再次修改.hgsub只有www并提交它才能生效。 我在机器B的www子程序中做了一些工作,想要推回到中央仓库,但它也会将更改推送到.hgsub。现在,当我拉上机器A时,我的“dev”subrepo消失了,我必须再次将它添加回.hgsub,然后我这样来回走,直到我沮丧地拔出头发。
有没有办法解决这个问题?必须在每台机器上本地提交.hgsub以使子目录工作,但我不希望它们被推或拉。 推/拉是否有.hgignore?
欢呼声。
答案 0 :(得分:6)
推/拉不对文件进行操作,它对更改集进行操作。
因此,没有办法推/拉部分变更集,无论是推/拉,还是没有。
如果您不希望存储库总是包含该文件/子存储库,则不应该像这样组织您的项目。相反,您可能希望仅使用其他站点所需的子存储库来设置辅助项目。
换句话说,您可能会考虑拥有2个项目,一个包含所有子回购,另一个只有几个。