上記のような状況を前提として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からの一括反映はムリ。こんどからはもっとちゃんとポリシーを明確にしよう…。