2

我有一个带有一个子存储库的 Mercurial 主存储库,如下所示:

Main
  .hg
  .hgsub
  .hgsubstate
  <some_regular_files_and_subdirs>
  Sub
    .hg
    <some_regular_files_and_subdirs>

而且我希望标记Sub,同时保持Main/.hgsubstate最新(即指向Sub标记过程产生的变更集)。
我不想标记主存储库。
如果不从内部进行标记Sub并做一些魔术来Main/.hgsubstate更新,这是否可能?

4

2 回答 2

1

更新子存储库时,您始终需要在主存储库上执行提交以开始使用该子存储库修订。因此,您不能完全从 subrepo 本身做您想做的事情,您必须进入主 repo 并在那里执行一个命令。

从命令行:

(navigate to subrepo directory)
> hg tag <tagName>
(navigate to main repo directory)
> hg commit -m "updating to subrepo tag <tagName>"

创建 subrepo 标签并将 subrepo 更新为该标签后,从顶层(即:)执行提交Main应该会更新.hgsubstate并且不需要您标记Mainrepo。实际上,更改任何子存储库的修订版都应该触发 .hgsubstate 文件的更改,该更改可以在没有标记的情况下在主存储库中提交。

于 2011-04-28T17:38:09.283 回答
0

像下面这样的东西?

hg -R Sub tag tagname
hg -R Sub commit -m "Comitting tag"
于 2011-04-28T18:37:26.960 回答