0

我正在维护一个带有一些附加补丁的 hg 存储库的 git fork。这意味着我已经克隆了 hg 存储库,然后按照这些说明将该存储库推送到 git 存储库。

然后我克隆了 git 存储库,应用了一些提交,然后将这些提交推送到了 git 存储库。

我的历史看起来像:

hg-head\      /git-head
    A-B-C-F'-G'

F'我的G'补丁在哪里?

hg 开发人员现在将一些补丁推送到 hg 存储库,我想将这些更改合并到我的 fork 中。我想这样做保持汞历史完整。换句话说,我希望我在 git 中的最终历史看起来像:

hg-head\        /git-head
    A-B-C-E-F'-G'

Ehg 的新提交在哪里。

在 git 术语中,这将是说“我想将rebase我的 master 分支放到 origin/master 上”。

我的问题是我在 hg 和/或 git 中执行哪些命令来实现这一点?

4

1 回答 1

1
  • 如果你没有将(你的补丁)从 Git 拉到本地 HG-repo,你在 HG 端什么也做不了
  • 如果您从 Git 中提取,则在从上游存储库中提取 E 后,您将在本地存储库中获得额外的头(“匿名分支”)。为了线性化历史(如果你想要它,虽然“中介”不需要它),你将在 Mercurial 中使用相同的(按名称)命令:hg rebase

请注意:您可以简化您的工作流程,如果您将尝试使用Git 中的Mercurial 桥(现在是 Git 的一部分)而不是中间 HG 节点,从您的 Git 直接访问上游 Mercurial 存储库

于 2014-10-30T18:23:38.050 回答