我正在使用Mercurial 1.6。我有一个有几个subrepos(11)的回购。我想在不推送子回购的情况下将父回购推送到默认的远程回购。原因想要做到这一点包括:推送mercurial repo而不推送subrepos
- 我正在使用SSH回购,并且它需要很长时间才能建立连接,并没有推送到每个subrepos。
- 我有subrepos提交我不想传播到远程回购(还)。
- Subrepos命名的分支不应传播到repote回购站(显然没有办法将分支名称传递给subrepos的推送操作)。
但是,我一直无法找到一种方法来实现这一点。我尝试删除.hgsub和.hgsubstate(不提交)的内容,但mercurial仍坚持推送subrepos。
我该如何推动从本地仓库到远程仓库的更改并暂时忽略子仓库?
这是有道理的,它让我觉得我们不是按照他们打算使用的方式使用subrepos。我们主要使用它们来轻松地检出一个回收集合......而我们的.hgsubstate始终引用subrepos的NULL修订版本。看起来,hgforest扩展(现已弃用)对于我们的目的比subrepos更好。 – 2010-12-22 14:26:30
这很有道理,但Mercurial似乎过于热忱。即使该修订(或其任何后代)在'.hgsubstate'中被调用,它也会尝试推送'abcd1234'。即使'hg out --S -r .'('-S'用于'rererse into subrepos')也不会列出subrepo的变化。 – weberc2 2014-12-22 15:03:16
我们可以告诉它,如果所有变更集的阶段都是公开的,那么我们可以告诉它不推动,因为这表明(只要我们没有手动设置公共阶段)它已经被推送。 – 2016-02-17 15:18:34