gpt4 book ai didi

mercurial - 推送 Mercurial 仓库而不推送子仓库

转载 作者:行者123 更新时间:2023-12-02 21:45:53 29 4
gpt4 key购买 nike

我正在使用 Mercurial 1.6。我有一个带有几个子存储库的存储库 (11)。我想将父存储库推送到默认远程存储库,而不推送子存储库。想要这样做的原因包括:

  • 我使用的是 SSH 存储库,需要很长时间才能建立连接并向每个子存储库推送任何内容。
  • 我在子存储库中有提交,但我不想将其传播到远程存储库。
  • 子存储库具有不应传播到 repot 存储库的命名分支(并且显然无法将分支名称传递给子存储库的推送操作)。

但是,我一直无法找到实现此目标的方法。我尝试删除 .hgsub 和 .hgsubstate 的内容(不提交),但 Mercurial 仍然坚持推送子存储库。

如何将更改从本地存储库推送到远程存储库并暂时忽略子存储库?

最佳答案

我认为您需要制作子存储库的本地克隆。

推送主存储库而不推送子存储库的问题在于,子存储库的内容不是主存储库的一部分 - 只有它们的状态才是。内容是从 .hgsub 中指定的原始位置引用的。因此,您的主存储库的 .hgsubstate 表示“子存储库 A 的版本为 abcd1234”,但 abcd1234 是您所做的更改,您不想推送...现在如果您克隆了会发生什么主要 repo ?它会尝试从原始位置克隆子存储库并将其更新为 abcd1234,但原始位置不存在该修订版本,因此克隆将失败。

相反,您可以对每个外部存储库进行本地克隆,并将这些引用为子存储库的外部位置。然后,当您推送主存储库时,子存储库更改将仅传播到您的本地克隆。当您准备好共享这些更改时,只需转到本地克隆并从那里推送,您就可以传递分支名称等。

关于mercurial - 推送 Mercurial 仓库而不推送子仓库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3212831/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com