2

事実上、「ローカルとのマージ」の反対を行いたいと思います

明確にするために:リリースブランチとデフォルトブランチがあります。リリースブランチでバグ修正を行う場合のルーチンは次のとおりです。

  1. リリースブランチへの更新
  2. バグ修正を実装し、コミットします
  3. デフォルトのブランチに更新します
  4. リリースブランチからバグ修正コミットを右クリックし、[ローカルとマージ...]を選択します。

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

これはTortoiseHgでもう実行できますか?

4

2 に答える 2

2

3者間マージは基本的に対称的です。つまり、コードの2つの異なるバージョン(2つのブランチ)を1つのバージョンにマージします(マージコミット)。defaultに更新することとマージすること、またはその逆を行うことには技術的な違いはありませんrelease。特に、マージの競合はまったく同じです。

Mercurialでは、名前付きのブランチ名のために余分な工夫があります。デフォルトでは、マージコミットは最初の親のブランチ名を継承します。したがって、マージする前にに更新しない場合default、最初の親はになりますrelease。ただし、コミットする前にブランチ名を変更できます。

コマンドラインでは、次のようになります。

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

TortoiseHgの2.0より前のバージョンでは、マージをコミットするための次のダイアログが表示されました。

hgtkコミットダイアログ

「branch:release」というコミットメッセージの上にあるボタンを使用して、次のコミット(マージコミット)のブランチを変更できます。TortoiseHg 2.xでは、ダイアログは次のようになります。

thgコミットダイアログ

ブランチを変更するためのボタンはもうありません。

TortoiseHg開発者にボタンを再度追加するように依頼するか、最新バージョンのMercurialと互換性のある2.0より前のTortoiseHgが必要な場合は、HenrikStuartのTortoiseHgを使用できます。

于 2012-04-13T15:03:03.600 に答える
1

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

  1. リリースクロ​​ーンでは、バグ修正とコミットを実装します。
  2. デフォルトのクローンでは、リリースからプルしてローカルとマージします。
于 2012-04-12T14:21:35.857 に答える