具有不同变更集的 Mercurial 中的多个负责人

Multiple heads in mercurial with different changesets

我有一个关于 mercurial 和 multiple heads 的问题,我相信由于我的 mercurial 设置,这个问题之前没有得到解答:)

我有一个存储库 (local/repo/) 的本地副本,这是我工作的地方。完成所需的提交后,我将推送到 "interim" 存储库 (interim/repo),也在我的机器上。然后我从共享存储库中推送 to/pull 来自临时存储库。

问题是我从本地推送到临时仓库,然后从 临时和本地仓库中的共享仓库拉取并更新更改,并按要求合并.

现在无法从任一存储库推送。从本地仓库推送会导致中止,因为它会创建一个新的远程头 (ABC),而从临时仓库推送会导致中止,原因相同,但变更集 (XYZ) 不同。

我不确定如何进行!我曾尝试 运行 hg backout 在我的本地回购中提交,但我担心这可能会导致问题,而不是缓解问题。

我认为您应该放弃直接对 临时 所做的更改。然后您可以恢复正常的工作流程并传播更改本地 → 临时 → 共享。

清理临时文件最直接的方法是使用hg strip。请小心使用该命令,因为它可能被认为具有破坏性(尽管它应该会生成一个备份文件)。


backout 没有做你想做的事,因为即使它将最新的文件状态恢复到原来的状态,它仍然留下(实际上创建)你必须处理的变更集。