プロジェクトの複数バージョンの管理
製品の開発マイルストーンが間近になると、プロジェクトの複数バージョンの並列管理が必要になることがあります。Visual SourceSafe では、プロジェクトの "共有化/ピン設定/分岐" またはラベル付けによって、プロジェクトの複数バージョンを同時に管理できます。共有化/ピン設定/分岐の手順については、「共有、ピン設定、および分岐によるバグ修正版の作成」を参照してください。
変更内容が少なく、ビルド工程への変更も少ない場合は、ラベル付けをお勧めします。一方で、進行中の開発作業を大幅に変更する場合は、共有化/ピン設定/分岐をお勧めします。たとえば、特定のベータ段階でソース ツリーの内容を確定し、このベータ版にバグの修正を含める場合には、ラベル プロモーションの機能が適しています。一方、製品のバージョン 1.1 とバージョン 2.0 を同時に開発する場合は、共有化/ピン設定/分岐を使用します。各バージョンをそれぞれ別のプロジェクトにし、すべてのファイルを共有化し、ピンを設定し、ファイルの変更が必要になった時点で、ファイルを分岐します。バージョン 1.1 の出荷後には、プロジェクトに "1.1" というラベルを付け、この変更内容をバージョン 2.0 にマージすることもできます。
ラベル プロモーションの使用例を以下に示します。
ケース 1 - 理想的な例
- ベータ 1 に向けてプロジェクトの開発とテストを行います。
- ベータ 1 用の作業が完了した時点で、プロジェクトに "ベータ 1" などのラベルを付けます。
- ベータ 2 の開発作業を開始します。
ケース 2 - ベータ 1 にファイルの別の既存バージョンを取り込む必要がある場合
DDUPD.EXE ユーティリティを実行すると、新しいデータベース形式が有効になります。詳細については、「DDUPD」を参照してください。
- ベータ 1 に向けてプロジェクトの開発とテストを行います。
- ベータ 1 用の作業が完了した時点で、プロジェクトに "ベータ 1" などのラベルを付けます。
- ベータ 2 の開発作業を開始します。
- 先のベータ 1 に取り込んだファイルのバージョンが不適切な場合は、ファイルを選択し、[ツール] メニューの [履歴の表示] をクリックします。[ファイルの履歴] ダイアログ ボックスが表示されます。
- ベータ 1 に含めたいファイル バージョンを選択し、"ベータ 1" というラベルを付けます。
- ベータ 1 用のプロジェクト ファイルを取得します。プロジェクトとしては "ベータ 1" というラベルを付けた時点のプロジェクトが取得されますが、個別に "ベータ 1" のラベルを設定したファイルについては、新しい適切なバージョンのファイルが取得されます。
ケース 3 - いずれかのファイルの最新バージョンのバグ フィックスをベータ 1 に取り込む必要がある場合 (ほかのファイルは変更されていないとき)
- ベータ 1 に向けてプロジェクトの開発とテストを行います。
- ベータ 1 用の作業が完了した時点で、プロジェクトに "ベータ 1" などのラベルを付けます。
- ベータ 2 の開発作業を開始します。
- ラベル "ベータ 1" に含まれているファイルのバージョン (バージョン 4 など) に、修正の必要なバグが見つかりました。プロジェクト内のほかのファイルは変更されていません。
- 問題のファイルをチェックアウトし、内容を変更し、チェックインします。
- このプロジェクトに再度 "ベータ 1" というラベルを付けます。元のラベルを削除するかどうかを問い合わせるメッセージが表示されます。
ケース 4 - いずれかのファイルの最新バージョンのバグ フィックスをベータ 1 に取り込む必要がある場合 (ほかのファイルも変更されているとき)
ラベル プロモーションの機能を使用するには、新しいデータベース形式を有効にしておく必要があります。DDUPD.EXE ユーティリティを実行すると、新しいデータベース形式が有効になります。詳細については、「DDUPD」を参照してください。
- ベータ 1 に向けてプロジェクトの開発とテストを行います。
- ベータ 1 用の作業が完了した時点で、プロジェクトに "ベータ 1" などのラベルを付けます。
- ベータ 2 の開発作業を開始します。
- ラベル "ベータ 1" に含まれているファイルのバージョンに、修正の必要なバグが見つかりました。プロジェクト内のほかのファイルの内容も変更され、変更内容がチェックインされています。
- バグの修正が必要なファイルをチェックアウトし、内容を変更し、チェックインします。新しいバージョンが作成されます。
- このファイルに "ベータ 1" というラベル、つまりプロジェクトと同じラベルを付けます。この結果、ファイルが新しいバージョンに昇格され、"ベータ 1" になります。
ベータ 1 版のプロジェクトを取得すると、"ベータ 1" というラベルを付けた時点のプロジェクトが取得されます。ただし、個別に "ベータ 1" というラベルを付けたファイルについては、新しい適切なバージョンのファイルが取得されます。
ケース 5 - 旧バージョンのファイルのバグを修正し、ベータ 1 に追加する必要がある場合
ラベル プロモーションの機能を使用するには、新しいデータベース形式を有効にしておく必要があります。DDUPD.EXE ユーティリティを実行すると、新しいデータベース形式が有効になります。詳細については、「DDUPD」を参照してください。
ベータ 1 に向けてプロジェクトの開発とテストを行います。
ベータ 1 用の作業が完了した時点で、プロジェクトに "ベータ 1" などのラベルを付けます。
ベータ 2 の開発作業を開始します。
ラベル "ベータ 1" に含まれているファイルに、修正の必要なバグが見つかりました。ただし、ファイルの最新バージョン (バージョン 6) に、ベータ 1 には不要な、ベータ 2 向けの変更内容が既に含まれているとします。
ファイル (バージョン 6) をチェックアウトします。
バージョン 4 を取得し、バージョン 6 のローカル コピーに上書きします。
このファイルにベータ 1 用のバグ修正を追加し、チェックインします。これによって、ファイルのバージョン 7 が作成されます。バージョン 7 の内容は、バージョン 4 に先のバグ フィックスを反映したものです。バージョン 5 と 6 での変更内容は含まれていません。
ファイルのバージョン 7 に "ベータ 1" というラベルを付けます。この結果、ファイルのバージョン 7 ラベル "ベータ 1" に昇格されます。
この時点でベータ 1 用のプロジェクトを取得すると、"ベータ 1" というラベルを付けた時点のプロジェクトが取り出されますが、個別に "ラベル 1" と指定したファイルについてはバージョン 7 のファイルが取得されます。
バージョン 5 と 6 で行った変更内容を復元してベータ 2 の開発を続行するには、バージョン 7 のファイルを再度チェックアウトします。
バージョン 6 を取得します。
バージョン 7 のローカル コピーを上書きするか、またはバージョン 6 と 7 をマージします。これによって、マージされたファイルの内容は、バージョン 6 の内容に、バージョン 7 で反映したベータ 1 の修正が含まれたものになります。
必要な変更をすべて加えてから、ファイルをチェックインします。この結果、バージョン 8 が作成されます。ベータ 2 向けの作業をこのバージョンで再開できます。
参照
ファイルまたはプロジェクトにラベルを付けるには | 旧バージョンの取得 | 最新バージョンの取得 | ファイルまたはプロジェクトのチェックイン