VisualSourceSafeのマージ手順

VSSで、Subversionっぽくこんな階層構造にしてみた。

/$
├─trunk
└─branches
    ├─0.0.1
    ├─0.0.2
    :
    :

ブランチを作成する際はD&Dで「分岐」すれば良いのだが、
マージする際に困ってしまった。
VSSエクスプローラ上からはファイル1つづつしかマージできないようだ。
ここで、一気にマージする方法を考える。


考えた手順は以下の通り

  1. trunkをローカルに取得して、全てチェックアウトしておく。
  2. マージしたいブランチ(0.0.2等)をローカルに取得する。
  3. trunkのローカルコピーにブランチのローカルコピーを上書きする。
  4. VSSエクスプローラで$/trunkを選択し、プロジェクトの相違点を表示する。この際にサブプロジェクトも含める。
  5. 全て調整をクリックし、マージする。


最後の「全て調整」時の設定は次のようにすると良いようだ。

作業フォルダ外のファイル                      :無視
プロジェクト内で削除されたファイル            :プロジェクトへの追加
どののプロジェクトにも含まれていないファイル  :プロジェクトへ追加
ユーザーがチェックアウトしているファイル      :チェックイン
ユーザーがチェックアウトしていないファイル    :無視

この手順だと、ブランチで削除したフォルダやファイルは残る。
プロジェクトの相違点画面で赤くなっているファイルを手で削除してやる必要がある。
「完全に削除」しない限り、ラベル設定と併用して旧バージョンも取得できる。