マージの仕方

上記のような状況を前提としてSubclipseでマージをしてみましたが、いやなノウハウが貯まったので記録に残しておきます。

前提

maint-line

active-dev-line

があって、maint-lineの変更をactive-dev-lineに反映させる場合。

プロジェクトチェックアウト

maint-lineとactive-dev-lineの両方を別プロジェクトとしてチェックアウトします。

両方のプロジェクトをひと目で閲覧できるようにする

適当なパースペクティブで、ナビゲータービューとプロジェクト・エクスプローラー・ビューのようにラベルもちゃんと表示しつつ、プロジェクトの状況を把握できるビューを、下記のように左右に並べます。

このとき、片方はactive-dev-line、もう片方はmaint-lineにすると、このあとのラベルを基準にした目視確認がやりやすいです。

Subclipseでマージ

active-dev-lineをfrom、maint-lineをtoとして、Subclipseのメニューのマージを行います。このとき、マージプロンプトに「マージ結果の確認」みたいなボタンがありますが、無反応でした。これができればこんなに苦労しないで済んだのに…。
しょうがないので「マージ」を選んで、一括でマージしてしまいます。

ひたすら目視確認

一括マージが終わったらあとはひたすらactive-dev-liveとmaint-lineで目視確認です。ラベルで日付が表示されるので、active-dev-liveのラベルの日付を基準にして、

  • active-dev-liveのラベルの日付が分割した日付以前ならばマージ結果はそのまま
  • active-dev-liveのラベルの日付が分割した日付以降、かつ、maint-lineのラベルの日付が分割した日付以前ならば、active-dev-liveでリバート
  • active-dev-liveのラベルの日付が分割した日付以降、かつ、maint-lineのラベルの日付も分割した日付以降ならば、個別のファイルのヒストリを追って、手動でマージ

のような対応をひたすら繰り返します。1ヶ月分は死ねました…。
もっとインテリジェントというか、普通の機能を使ってできるとは思いますが、わかんなかったのでこんな感じでひたすら対応。やっぱ、maint-lineからの一括反映はムリ。こんどからはもっとちゃんとポリシーを明確にしよう…。