使用补丁维护Hg存储库的Git Fork

时间:2014-10-29 20:44:41

标签: git version-control mercurial hg-git

我正在维护一个带有一些额外补丁的hg存储库的git fork。这意味着我克隆了hg存储库,然后将该存储库推送到these directions之后的git存储库。

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

我的历史如下:

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

其中F'G'是我的补丁。

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

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

其中E是hg上的新提交。

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

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

1 个答案:

答案 0 :(得分:1)

  • 如果你没有将你的补丁从Git拉到当地的HG-repo,你就无法在HG方面做任何事情
  • 如果您从Git中撤出,那么在从上游存储库中提取E后,您将在本地存储库中获得额外的头("匿名分支")。为了线性化历史记录(如果你需要它,而在#34; mediator"中不需要它),你将在Mercurial中使用相同的(按名称)命令:{{1} }

请注意:您可以简化工作流程,如果您尝试使用Mercurial bridge in Git(现在是Git的一部分)而非中间HG节点进行直接访问来自你Git的上游Mercurial回购