mercurial - 複数 - phpstorm rebase




Mercurialでファイルをあるブランチから別のブランチにチェックアウトするにはどうすればいいですか? (2)

Mercurialで一つのブランチから別のブランチに一つのファイルをチェックアウトするにはどうすればいいですか?

基本的に、 experimentalブランチから別のブランチproduction単一のファイルをコピーしたいと思います。


@shellholicによって示唆されたようにhg revertは確かに他のブランチのあるブランチからファイルを作成します。 ただし、ファイルは履歴に新しく追加されたように見えます。 実際の履歴はターゲットブランチには表示されません。

私は接ぎ木術がより良い代替法だと思います。

2つのブランチがあり、サイドブランチにファイルf2.txtを作成して作業したとしましょう。 あなたは同時に同じブランチのファイルf3.txtにも取り組んでいました。

  1. ソース(サイド)ブランチに、目的のファイルのみを含む別のチェンジセットを作成します。このようなチェンジセットがすでにある場合は、新しいチェンジセットを作成する必要はありません。

  2. ターゲットブランチに更新します。

  3. ソースチェンジセットを移植します。 変更したバージョンを使用するかどうかをMercurialが尋ねます。 「c」と答えます(変更)。

結果は次のようになります。

ファイル履歴は正しく保存されています。

そしてf3.txtはターゲットブランチにマージされません


hg cat -r experimental filenameと、任意のリビジョンで任意のファイルを表示できます。 しかし、この種の動作はデバッグ用パッチのように見えます。その場合は、 transplantを検討します(他のDVCSでのチェリーピッキング)。

hg revert -r experimental filenameテストできませんでした。





mercurial