仅标记子存储库

时间:2011-04-28 14:45:09

标签: mercurial subrepos mercurial-subrepos

我有一个Mercurial主存储库,其中包含一个子存储库,如下所示:

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

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

2 个答案:

答案 0 :(得分:1)

更新子参数时,您始终需要在主仓库上执行提交才能开始使用该子报表修订。因此,您无法从子实体本身完全按照自己的意愿执行操作,您必须输入主仓库并在那里执行单个命令。

从命令行

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

创建subrepo标记并将子标准更新为该标记后,从顶层执行提交(即:Main)应更新.hgsubstate并且不要求您标记{ {1}}回购。事实上,更改任何subrepo的修订版应该会触发.hgsubstate文件的更改,该文件可以在没有标记的主仓库中提交。

答案 1 :(得分:0)

如下所示?

hg -R Sub tag tagname
hg -R Sub commit -m "Comitting tag"