web-dev-qa-db-ja.com

Eclipseマージツールを使用してCVSブランチをHEADにマージするにはどうすればよいですか?

私は現在、チーム->ブランチを使用して作成したブランチで作業しています。 Team-> Mergeを使用して、ブランチへの変更をマージしてヘッドに戻すにはどうすればよいですか?

35
Alex Argo

私もこれで困っていました。マージするための手順は次のとおりです(主にオンラインのEclipseヘルプから取得)。

  1. 開発ブランチを作成するとき(Team-> Branch)ブランチ用に作成されたルートタグがあることを確認します。これは、CVSが決定するために使用するタグですブランチに起因する変更と、他の取り組みからコミットされた可能性があるもの
  2. ブランチで開発を完了し、すべての変更をリポジトリにコミット(チーム->コミット)します。
  3. ブランチに対するすべての変更がリポジトリにあるので、マージしたい宛先ブランチをロードします。通常はHEAD(Team-> Switch to別のブランチまたはバージョン

これで、実際のマージプロセスを開始する準備ができました。ここでは、どの変更を取得し、どの変更を破棄するかを選択します。このプロセスは、半自動化された開発サイクル、実質的にはチェックアウト、変更、コミットサイクルと考えてください。手動で変更を挿入する代わりに、支援する比較ツールがあります。結局のところ、ブランチのすべてのコード変更はすでに完了しています。

マージするには:

  1. チーム->マージ
  2. マージするブランチまたはバージョン(終了タグ):これは開発ブランチタグの名前です
  3. Common Base Version:これはブランチのルートタグの名前です(前のセクションのステップ1を覚えていますか?)。これはツールによって自動入力されているはずですが、そうでない場合は自分で追加してください
  4. 同期ビューでマージをプレビューするのが好きです。そうすることで、本来あるべきものが何も入っていないことを確認できます。あなたの勇気に応じて、これは私が提案するオプションです。 完了ボタンをクリックします
  5. パースペクティブの同期が表示され、宛先ブランチとソースブランチの間に見つかった違いが左側の展開可能なリストに表示されます
  6. ファイルを比較ツールで開いて変更内容を確認し、変更を個別にマージする(完了したらファイルを保存することを忘れないでください)か、ファイルを右クリックして展開可能なリストからマージを選択します。比較ツールを使用して手動でマージする場合は、展開可能なリストで[マージ済みとしてマーク]を選択して、todoリストからファイルを削除できます。
  7. ファイルをどうするかを決定すると、リストから削除されます。目標は、各ファイルを操作することです
  8. すべての変更がマージされたので、Javaパースペクティブに戻り、Team-> Synchronize with Repositoryを選択します) 、同期パースペクティブが再び表示されます。
  9. 今回は、[コミット]を選択して、すべての変更をリポジトリにプッシュします。
  10. フィン!

お役に立てば幸いです。参考までに、勝利に導いたヘルプドキュメントの内容を以下に示します。

Eclipse SDKヘルプ-ブランチのマージ

49
Brian

宛先がワークスペースにロードされていることを確認してください。これは最も重要な部分であり、何度か試してみたときに見逃した部分です。

たとえば、変更をHEADにマージする場合は、プロジェクトがHEAD作業中のブランチではなく)ワークスペースで共有されていることを確認してください。これを行うには、プロジェクトをクリックし、コンテキストメニューからTeam > Replace With > Another Branch or Versionを選択します。次に、置換するブランチを選択します。

この時点で、Team > Mergeを選択し、HEADにマージするブランチを選択します。

7
Alex Argo

YOUR_BRANCHの変更をHEADに更新する必要がある場合、これが別の方法で機能することに同意します。

1)YOUR_BRANCHへの変更のコミット2)HEAD 3)へのローカルブランチのスワップ3 =マージHEAD YOUR_BRANCHで行われた魔女の変更

したがってHEADであり、YOUR_BRANCHから変更を「取る」である必要があります(YOUR_BRANCHからHEADに変更を送信する代わりに)。

4
Marcin Wasiluk

私はこれをしなければなりませんでした。上記の答えは似ていましたが、私がする必要があることに固有ではないことがわかりました。

  • すでに述べたように、宛先ブランチ(通常はヘッド)がすでにチェックアウトされていることを確認してください。
  • 次に、ブランチ(またはプロジェクト全体など)で変更したことがわかっているファイルを強調表示し、_Team -> Merge_を選択します。ポップアップダイアログボックスで、「Branch or version to be merged (end tag)」を選択します。これは、ファイルを取得するソースブランチです。
  • 私の場合、これは "Common base version (start tag)"に自動入力しましたが、そうでない場合は、ブランチの作成時に作成されたタグになります。

変更をプレビューすると、通常のCVS同期ビューに表示されます。ファイルをマージすると、それらはローカルワークスペース(以前の宛先ブランチ)に変更として反映されます。この時点で、それらをCVSにチェックインする必要があります。

1
Clarkey

率直に言って、分岐した時点からこのマージを予測して計画していない限り、簡単でクリーンな方法はありません。

しかし、完璧に機能するハックを見つけました 私はブログの投稿で説明しました

0
Anshu Jain

私もこれに苦労し、「ローカルワークスペースへのマージを実行する」ラジオボタンをチェックするまで、上記の回答は役に立ちませんでした。

残念ながら、2つのファイルがマージされる前にマージをプレビューすることができませんでした。

0
birwin