0

いくつかの追加パッチを使用して、hg リポジトリの git フォークを維持しています。これが意味することは、hg リポジトリを複製してから、これらの指示に従ってそのリポジトリを git リポジトリにプッシュしたということです。

次に、git リポジトリのクローンを作成し、いくつかのコミットを適用してから、それらのコミットを git リポジトリにプッシュしました。

私の履歴は次のようになります。

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

とは私F'G'パッチです。

hg 開発者はいくつかのパッチを hg リポジトリにプッシュするようになりました。これらの変更を自分のフォークに組み込みたいと考えています。hgの履歴をそのまま維持したいと思います。つまり、git での最終的な履歴を次のようにしたいと考えています。

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

Ehg の新しいコミットはどこにありますか。

rebasegit 用語では、これは「 master を origin/master にブランチしたい」という意味になります。

私の質問は、これを実現するために hg や git で実行するコマンドは何ですか?

4

1 に答える 1

1
  • (パッチを) Git からローカル HG リポジトリにプルしなかった場合、HG 側では何もできません。
  • Git からプルした場合、アップストリーム リポジトリから E をプルした後、ローカル リポジトリに追加のヘッド (「匿名ブランチ」) を取得します。履歴を線形化するには (「メディエーター」では必要ありませんが、必要な場合)、Mercurial で同じ (名前による) コマンドを使用します。hg rebase

注意: 中間 HG ノードの代わりに、Git で Mercurial ブリッジ(現在は Git の一部) を使用して、Git から上流の Mercurial リポジトリに直接アクセスしようとすると、ワークフローを簡素化できます。

于 2014-10-30T18:23:38.050 に答える