フォルダーおよびファイルの分岐
分岐を使用すると、次の目的を達成できます。
同じコードベース上での複数のチームによる同時実行作業の管理
さまざまな変更セットによってコードベースに導入されたリスクの分離
スナップショットの取得とそれ以降の個別の変更のサポート (たとえば、リリース ブランチの作成など)
たとえば、次の図は、DinnerNow 社がビジネス ニーズを満たす分岐構造を開発する方法を示しています。
[階層] ウィンドウに表示された DinnerNow 社の分岐構造
Feature Team A と Feature Team B は、それぞれ別の分岐で作業を実行します。 それらのチームの作業を統合する準備ができると、それぞれの分岐を Dev 分岐にマージします。 Dev 分岐からのビルドが安定してテストの準備ができると、それらのチームは Dev 分岐を Test 分岐にマージします。
それぞれのバージョンがリリースされると、Main 分岐が新しいバージョンの分岐 (Version1 分岐と Version2 分岐など) に分岐されます。 この方法により、過去のバージョンの製品を必要に応じて個別に強化または修正できます。
このトピックで説明されているようにソース管理エクスプローラーを使用するか、またはコマンド プロンプトで Branch コマンドを使用すると、分岐処理を実行できます。 詳細については、「Branch コマンド」を参照してください。
ヒント
分岐は、ファイルのバージョンのパラレル セットを作成するための重要で強力な手法です。 しかし、分岐を使用するとプロジェクトが複雑になり、コストが高くなることがあります。 たとえば、2 つの分岐をマージする場合、競合の解決が必要になることがあります。
要件を満たすためにはラベルを適用する方がよいかどうかを、分岐を作成する前に考慮する必要があります。 ラベルを適用することで、ファイルの状態のスナップショットをすばやく簡単に取得し、後でその状態のファイルを取得またはビルドできます。 詳細については、「ラベルを使用したファイルのスナップショット取得」を参照してください。
フォルダーから分岐への変換
Visual Studio Team Foundation Server 2010 のリリースでは、分岐とフォルダーを区別するようになりました。 次の図に、DinnerNow フォルダー構造の最上位レベルを示します。
ソース管理エクスプローラーに表示された DinnerNow フォルダー構造
図に示すように、フォルダーを使用して、チーム プロジェクトのバージョン コントロールの階層内で分岐を編成できます。 ただし、フォルダーと分岐では表示形式も機能も異なります。 フォルダーまたは分岐を右クリックして [プロパティ] をクリックすると、表示される情報と機能はそれぞれ異なります。
分岐操作を実行した場合、分岐はフォルダーより大きな利点があります。 分岐は、分岐構造の詳細と、変更セットがマージされた場所の情報を表示するバージョン コントロール機能をサポートしています (詳細については、このトピックの「参照」セクション内のリンクを参照してください)。
フォルダーの分岐およびマージは使用できますが、ベスト プラクティスとして、分岐のみを分岐およびマージすることをお勧めします。 次の手順では、フォルダーを分岐に変換する方法について説明します。
必要なアクセス許可
次の手順を実行するには、[分岐の管理] のアクセス許可が [許可] に設定されている必要があります。 詳細については、「Team Foundation Server のアクセス許可」を参照してください。
フォルダーから分岐に変換するには
ソース管理エクスプローラーで、変換するフォルダーがサーバー上に存在することを確認します。
保留中の追加アイコン () がフォルダーの横に表示されている場合は、そのフォルダーを右クリックし、[保留中の変更のチェックイン] をクリックします。
変換するフォルダーを右クリックし、[分岐とマージ] をポイントし、[分岐に変換] をクリックします。
[フォルダーを分岐に変換] ダイアログ ボックスが表示されます。
重要 それまでに分岐したフォルダーを変更する場合は、[以前にこのフォルダーから分岐したすべてのフォルダーに対してこの変換を再帰的に実行する] チェック ボックスをオンにします。 このオプションでは、この 1 つのフォルダーから分岐されたすべてのフォルダーを分岐に変換します。
(省略可能) [所有者] フィールドに、この分岐の所有者の名前を入力します。
注意
[所有者] フィールドは情報提供用です。 [所有者] フィールドに名前があっても、追加のアクセス許可が与えられるわけではありません。
(省略可能) [説明] フィールドに、この分岐を使用して目的を理解する必要がある他のチーム メンバーのために、役立つ情報を入力します。
[変換] をクリックします。
重要
分岐を入れ子にはできません。したがって、他の分岐を含む、または他の分岐に含まれるフォルダーは、分岐に変換できません。 たとえば、次の図は、FeatureTeamA 分岐の親も子も分岐に変換できないことを示しています。
フォルダーを分岐に変換した後に、チームで分岐構造の変更を決定した場合は、その分岐をフォルダーに戻すことができます。
分岐からフォルダーに変換するには
ソース管理エクスプローラーで、変換する分岐をクリックします。
[ファイル] メニューをクリックし、[ソース管理]、[分岐とマージ] の順にポイントし、[フォルダーに変換] をクリックします。
[分岐をフォルダーに再変換] メッセージが表示されたら、[はい] をクリックします。
分岐の分岐
フォルダーを分岐に変換すると、その分岐から他の分岐を作成できます。 次の手順では、Visual Studio アプリケーション ライフサイクル管理 (ALM) のグラフィカル ユーザー インターフェイスを使用して分岐を分岐する方法を示します (コマンド プロンプトでこの作業を実行する方法については、「Branch コマンド」を参照してください)。
必要なアクセス許可
この手順を実行するには、ソース分岐とターゲット分岐へのパスに対する [分岐の管理] アクセス許可が [許可] に設定されている必要があります。 ターゲット分岐へのパスに対する [マージ] アクセス許可が [許可] に設定されている必要があります。 詳細については、「Team Foundation Server のアクセス許可」を参照してください。
分岐を分岐するには
ソース管理エクスプローラーで、分岐する分岐を右クリックし、[分岐とマージ] をポイントして [分岐] をクリックします。
[分岐元] ダイアログ ボックスが表示されます。
[ターゲット分岐名] ボックスで、新しい分岐へのパスを指定します。
(省略可能) [バージョンからの分岐] セクションの [単位] ボックスで、次のオプションのいずれかをクリックします。
[最新バージョン] をクリックすると、バージョン コントロールの最新のバージョンに分岐が作成されます。
[変更セット] をクリックすると、[変更セット] ボックスに変更セット番号を指定できます。 または、省略記号 (...) をクリックして [変更セットの検索] ダイアログ ボックスを開きます。
詳細については、「変更セットに関する情報の検索」を参照してください。
[日付] をクリックした場合は、[日付] ボックスで日付を指定できます。
[分岐] をクリックします。
分岐が作成され、ソース管理エクスプローラーに表示されます。
メモ 大半のバージョン コントロール操作とは異なり、この操作では変更が保留されません。 即時に操作が完了し、操作を元に戻すことはできません。
フォルダーまたはファイルの分岐
重要
ほとんどの場合、このセクションに含まれている手順はベスト プラクティスではありません。
Visual Studio ALM でもフォルダーまたはファイルを分岐できますが、この種類の操作は一般的に、ほとんどの目的に対して最善の方法ではありません。 このトピックで前に説明したように、ベスト プラクティスとして、分岐のみを分岐およびマージすることをお勧めします。
しかし、特別にフォルダーまたはファイルを分岐する必要がある場合は、Visual Studio ALM を使用してこのタスクを実行できます (コマンド プロンプトでこの作業を実行する方法については、「Branch コマンド」を参照してください)。
必要なアクセス許可
この手順を実行するには、ターゲット パスに対する [チェックアウト] アクセス許可と [マージ] アクセス許可が [許可] に設定されている必要があります。 詳細については、「Team Foundation Server のアクセス許可」を参照してください。
フォルダーまたはファイルを分岐するには
ソース管理エクスプローラーで、分岐するフォルダーまたはファイルを右クリックし、[分岐とマージ] をポイントして [分岐] をクリックします。
[分岐] ダイアログ ボックスが表示されます。
[ターゲット] ボックスで、新しい分岐の名前と場所を変更します。
[参照] をクリックしてターゲットを指定することもできます。
[バージョンからの分岐] セクションの [単位] ボックスで、次のオプションのいずれかをクリックします。
[最新バージョン] をクリックすると、バージョン コントロールの最新のバージョンに分岐が作成されます。
[変更セット] をクリックすると、[変更セット] ボックスに変更セット番号を指定できます。 または、省略記号 (...) をクリックして [変更セットの検索] ダイアログ ボックスを開きます。
詳細については、「変更セットに関する情報の検索」を参照してください。
[日付] をクリックした場合は、[日付] ボックスで日付を指定できます。
[ラベル] をクリックすると、[ラベル] ボックスにラベル名を入力できます。 または、省略記号 (...) をクリックして [ラベルの検索] ダイアログ ボックスを開きます。
詳細については、「ラベルを使用したファイルのスナップショット取得」を参照してください。
[ワークスペース バージョン] をクリックすると、ワークスペースのバージョンに分岐が作成されます。
(省略可能) [新しい分岐のためのローカル作業コピーを作成] チェック ボックスをオンにして、バージョン管理された項目のコピーをローカル ワークスペースに作成します。 ローカル コピーが不要で、多くの項目を選択してコンピューターにダウンロードすることを回避してパフォーマンスを向上させる場合は、このチェック ボックスをオフにします。
[OK] をクリックします。
分岐が作成され、ソース管理エクスプローラーに表示されます。
注意
[新しい分岐のためのローカル作業コピーを作成] チェック ボックスをオンにして、指定したローカル フォルダーが現在のワークスペースにマップされていない場合は、[フォルダーの参照] ウィンドウが表示されます。 フォルダーを参照するか [新しいフォルダーの作成] をクリックして、バージョン管理された項目に同期するフォルダーを指定し、次に [OK] をクリックします。