2012-04-12 3 views
2

は、私は明確にするためTortoiseHgでは、どのように "選択したローカルにマージする"ことができますか? 我々は<em>リリース</em>ブランチと<em>デフォルト</em>枝を持っています。実際に

を「ローカルでマージ」の逆を行いたいと思います。リリースブランチのバグ修正を行う場合は、ここでルーチンです:リリース

    1. アップデートはバグ修正を実装し、デフォルト
    2. 更新をコミット右 - リリースブランチからバグ修正コミットをクリックし、「ローカルでマージ...」を選択してください。

    リリースのブランチで多くの作業が行われるため、ブランチ間で常に更新するのは面倒です。 TortoiseHgの以前のバージョンでは、マージを行う前にブランチを選択することができました。実際には、「選択したローカルでマージする」ことができました。上記の手順1と3を削除します。

    これはTortoiseHgでこれ以上実行できますか?

  • 答えて

    2

    3ウェイマージは基本的に対称です。コードの2つの異なるバージョン(2つのブランチ)を1つのバージョン(マージコミット)にマージします。 defaultに更新してreleaseとマージするか、それとも逆の方法でも技術的に異なるわけではありません。特に、マージの競合はまったく同じです。

    Mercurialでは、ブランチ名のために余分な歪みがあります。デフォルトでは、マージコミットはのブランチ名を最初の親に継承します。マージする前にdefaultに更新しないと、最初の親はreleaseになります。しかし、をコミットする前にブランチ名に変更することができます。コマンドラインで

    それだけだ:前2では

    $ hg update release 
    $ hg merge default 
    $ hg branch default 
    $ hg commit -m 'Merged release into default' 
    

    。あなたがマージをコミットするために、このダイアログが表示されたTortoiseHgのの0のバージョン: - マージコミット:「リリースブランチは、」次のコミットの支店を変更するために使用することができ

    hgtk commit dialog

    コミットメッセージの上にあるボタンを言って。

    thg commit dialog

    をしてブランチを変更するためのボタンがもはやあります:TortoiseHgの2.xではダイアログは次のようになりません。

    TortoiseHg開発者にボタンをもう一度追加してもらうか、Mercurialの最新バージョンと互換性がある2.0より前のTortoiseHgが必要な場合は、Henrik Stuart's TortoiseHgを使用することができます。

    +1

    興味深い!また、マージコミットをキャンセルした後、通常のコミットプロセスを使用して別のブランチ上のマージをコミットすることで、2.0以降で実行できます。 –

    +0

    @ MarkTolonen:ああ、賢い!私はダイアログボックスをキャンセルするとは思わなかった。 –

    +0

    この問題は、現在https://bitbucket.org/tortoisehg/thg/issue/1831/missing-the-ability-to-change-branch-nameに報告されています –

    1

    私は方法を発見していない、コマンドラインのマージも常にローカルである。私はちょうど単一のクローンを更新するのではなく、各ブランチのクローンを保持し、クローン間を切り替えます。大規模プロジェクトの場合、ブランチを変更するときに通常は時間がかかる「すべてを再構築する」ことができません。余分な引きステップを追加しますが、全体的な時間を節約します:

    1. クローンリリースでは、バグ修正を実装し、コミットします。
    2. デフォルトのクローンでは、リリースから引き出し、ローカルにマージします。
    関連する問題

     関連する問題