4

我有一个回购,其中设置了两个子回购,如下所示:

project/
   |-- folder1
   |-- folder2
   |-- www       [subrepo]
   |-- dev       [subrepo]

在机器 A 上,我检查了项目、www 和 dev,并修改了 .hgsub。我必须提交这个,以便 hg 识别 www 和 dev 子存储库(提交 -S 等)。

但是机器 B 只使用了项目的 www 功能,所以它看起来像这样:

project/
   |-- folder1
   |-- folder2
   |-- www       [subrepo]

同样,机器 B 中的 .hgsub 只有一个 www 的条目,我必须提交这个才能让 hg 将其识别为子存储库。

我想做的是推拉到我的中央仓库,但不推/拉.hgsub。否则,如果我从机器 A 提交并推送 .hgsub,然后从机器 B 中提取,我会自动获得我不想要的 dev 子存储库和 www 子存储库。

所以我在机器 B 上再次修改 .hgsub 以仅具有 www 并提交它以使其生效。我在机器 B 上的 www 子存储库中做了一些工作,并希望将其推送回中央存储库,但它也会将更改推送到 .hgsub。现在,当我打开机器 A 时,我的“开发”子存储库消失了,我必须再次将其添加回 .hgsub,然后我像这样来回走动,直到我沮丧地拔掉头发。

有没有办法解决这个问题?.hgsub 必须在每台机器上本地提交才能使子存储库工作,但我不希望它们被推或拉。是否有用于推/拉的 .hgignore?

干杯。

4

1 回答 1

6

推/拉不对文件进行操作,而是对变更集进行操作。

因此,没有办法推/拉部分变更集,要么推/拉它,要么不推。

如果您不希望存储库始终包含该文件/子存储库,则不应这样组织您的项目。相反,您可能希望考虑设置一个仅包含该其他站点所需的子存储库的辅助项目。

换句话说,您可能会考虑拥有 2 个项目,一个包含所有子存储库,另一个包含几个。

于 2011-08-26T08:27:05.853 回答