フォルダーおよびファイルの分岐

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

分岐を使用すると、次の目的を達成できます。

  • 同じコードベース上での複数のチームによる同時実行作業の管理。
  • さまざまな変更セットによってコードベースに導入されたリスクの分離。
  • スナップショットの取得とそれ以降の個別の変更のサポート (たとえば、リリース ブランチの作成など)。

たとえば、次の図は、DinnerNow 社がビジネス ニーズを満たすために開発したブランチ構造を示しています。

ブランチ構造を示す図。

機能チーム A と機能チーム B は、それぞれ別のブランチで作業を実行します。 それらのチームの作業を統合する準備ができると、それぞれの分岐を Dev 分岐にマージします。 Dev 分岐からのビルドが安定してテストの準備ができると、それらのチームは Dev 分岐を Test 分岐にマージします。

それぞれのバージョンがリリースされると、Main 分岐が新しいバージョンの分岐 (Version1 分岐と Version2 分岐など) に分岐されます。 この方法により、過去のバージョンの製品を必要に応じて個別に強化または修正できます。

この記事で説明されているように Visual Studio のソース管理エクスプローラーを使用するか、またはコマンド プロンプトで branch コマンドを使用すると、分岐処理を実行できます。 詳細については、「Branch コマンド」を参照してください。

ヒント

分岐は、ファイルのバージョンのパラレル セットを作成するための重要で強力な手法です。 しかし、分岐を使用するとプロジェクトが複雑になり、コストが高くなることがあります。 たとえば、2 つの分岐をマージする場合、競合の解決が必要になることがあります。

要件を満たすためにはラベルを適用する方がよいかどうかを、分岐を作成する前に考慮する必要があります。 ラベルを適用することで、ファイルの状態のスナップショットをすばやく簡単に取得し、後でその状態のファイルを取得またはビルドできます。 詳細については、「ラベルを使用したファイルのスナップショット取得」を参照してください。

前提条件

  • フォルダーをブランチに変換するには、[ブランチの管理] アクセス許可が [許可] に設定されている必要があります。
  • ブランチを分岐するには、ソースおよびターゲット ブランチへのパスに対する [ブランチの管理] アクセス許可が [許可] に設定されている必要があります。 ターゲット ブランチへのパスに対する [マージ] アクセス許可が [許可] に設定されている必要があります。
  • フォルダーまたはファイルを分岐するには、ターゲット パスに対する [チェックアウト] アクセス許可と [マージ] アクセス許可が [許可] に設定されている必要があります。

詳細については、「既定の TFVC アクセス許可」を参照してください。

フォルダーをブランチに変換する

ブランチはフォルダーとは異なります。 次の図は、Visual Studio のソース管理エクスプローラーの DinnerNow フォルダー構造の最上位レベルを示しています。

ソース管理エクスプローラーのフォルダー構造を示す図。

図に示すように、フォルダーを使用して、プロジェクトのバージョン コントロールの階層内でブランチを編成できます。 ただし、フォルダーと分岐では表示形式も機能も異なります。 フォルダーまたはブランチを右クリックして [詳細設定]>[プロパティ] を選択すると、表示される情報と機能はそれぞれ異なります。

分岐操作を実行した場合、分岐はフォルダーより大きな利点があります。 分岐は、分岐構造の詳細と、変更セットがマージされた場所の情報を表示するバージョン コントロール機能をサポートしています。 フォルダーの分岐およびマージは使用できますが、ベスト プラクティスとして、分岐のみを分岐およびマージすることをお勧めします。 次の手順では、フォルダーを分岐に変換する方法について説明します。

重要

変換するフォルダーがサーバー上に存在することを確認してください。 ソース管理エクスプローラーでフォルダーの横に追加の保留アイコンTFSC 追加保留ステータス アイコン。が表示される場合は、フォルダーを右クリックし、[保留中の変更をチェックイン] を選択します。

  1. ソース管理エクスプローラーで、変換するフォルダーを右クリックし、[ブランチとマージ]>[ブランチに変換] を選択します。

  2. [フォルダーをブランチに変換] ダイアログ ボックスが表示されます。

    • 必要に応じて、[担当者] フィールドに、このブランチの所有者の名前を入力します。 このフィールドは情報のみを対象としており、アクセス許可は付与されません。
    • 必要に応じて、[説明] フィールドに、他のチーム メンバーがこのブランチを使用したり、その目的を理解したりするのに役立つ情報を入力します。
    • すでに分岐したフォルダーを変換する場合は、[Recursively perform this conversion for all branched child folders](以前にこのフォルダーから分岐したすべてのフォルダーに対してこの変換を再帰的に実行する) チェック ボックスをオンにします。 このオプションは、この 1 つのフォルダーから分岐したすべてのフォルダーをブランチに変換します。
  3. [変換] を選択します。

重要

ブランチを入れ子にすることはできません。 したがって、フォルダーがブランチを含んでいるか、ブランチに含まれている場合は、ブランチに変換することはできません。 たとえば、次の図は、FeatureTeamA ブランチの親も子もブランチに変換できないことを示しています。

入れ子になったブランチが許可されていないことを示す図。

フォルダーをブランチに変換した後に、チームでブランチ構造の変更を決定した場合は、そのブランチをフォルダーに戻すことができます。

ブランチをフォルダーに変換する

  1. ソース管理エクスプローラーで、変換するブランチを選択します。
  2. Visual Studio の [ファイル] メニューで、[ソース管理]>[ブランチとマージ]>[フォルダーに変換] の順に選択し、[はい] を選択します。

分岐の分岐

フォルダーをブランチに変換した後、そのブランチから他のブランチを作成できます。 次の手順は、Visual Studio を使用してブランチを分岐する方法を示しています。 コマンド プロンプトでこのタスクを実行するには、「Branch コマンド」を参照してください。

  1. ソース管理エクスプローラーで、分岐するブランチを右クリックし、[ブランチとマージ]>[ブランチ] を選択します。

  2. [<ブランチ名> からブランチ] ダイアログ ボックスの [バージョンからのブランチ] で、必要に応じてドロップダウンし、[基準] リストからオプションを選択します。

    • 最新バージョン: バージョン コントロールの最新のバージョンにブランチを作成します。
    • 変更セット: [変更セット] ボックスに変更セットの番号を入力するか、省略記号 ... を選択して [変更セットの検索] ダイアログ ボックスを開きます。 詳細については、「変更セットの検索と表示」を参照してください。
    • 日付: [日付] ボックスに日付を入力または選択します。
    • ラベル: ラベルを入力または検索できます。 詳細については、「ラベルを使用したファイルのスナップショット取得」を参照してください。
    • ワークスペースのバージョン: 別のワークスペースのバージョンのブランチを作成します。
  3. [ターゲット ブランチ名] で、新しいブランチのパスを指定または参照して選択します。

  4. [ブランチ] を選択します。 ブランチが作成され、ソース管理エクスプローラーに表示されます。

注意

大半のバージョン コントロール操作とは異なり、この操作では保留中の変更が生成されません。 即時に操作が完了し、操作を元に戻すことはできません。

フォルダーまたはファイルの分岐

フォルダーやファイルを直接分岐できますが、それは避けることをお勧めします。 ファイルまたはフォルダーを直接分岐した場合、ブランチ階層を表示したり、変更セットを追跡したりすることはできません。 この記事で前述したように、ベスト プラクティスとして、ブランチのみを分岐およびマージすることをお勧めします。

ただし、特別にフォルダーまたはファイルを分岐する必要がある場合は、次の手順を使用できます。 コマンド プロンプトでこのタスクを実行するには、「Branch コマンド」を参照してください。

  1. ソース管理エクスプローラーで、分岐するフォルダーまたはブランチを右クリックし、[ブランチとマージ]>[ブランチ] を選択します。

  2. [ブランチ] ダイアログ ボックスの [ターゲット] ボックスで、新しいブランチの場所と名前を変更するか、[参照] を選択してターゲットを参照して選択します。

  3. [バージョンからのブランチ] で、必要に応じてドロップダウンし、[基準] リストからオプションを選択します。

    • 最新バージョン: バージョン コントロールの最新のバージョンにブランチを作成します。
    • 変更セット: [変更セット] ボックスに変更セットの番号を入力するか、省略記号 ... を選択して [変更セットの検索] ダイアログ ボックスを開きます。 詳細については、「変更セットの検索と表示」を参照してください。
    • 日付: [日付] ボックスに日付を入力または選択します。
    • ラベル: ラベルを入力または検索できます。 詳細については、「ラベルを使用したファイルのスナップショット取得」を参照してください。
    • ワークスペースのバージョン: 別のワークスペースのバージョンのブランチを作成します。
  4. 必要に応じて、[ターゲット項目をワークスペースにダウンロードする] を選択して、ローカル ワークスペースにバージョン管理された項目のコピーを作成します。 ローカル コピーが不要で、多くの項目を選択してコンピューターにダウンロードすることを回避してパフォーマンスを向上させる場合は、このチェック ボックスをオフにします。

  5. [OK] を選択します。 ブランチが作成され、ソース管理エクスプローラーに表示されます。

    注意

    [ターゲット項目をワークスペースにダウンロードする] を選択し、指定したローカル フォルダーが現在のワークスペースにマップされていない場合は、[フォルダーの参照] ウィンドウが表示されます。 フォルダーを参照するか [新しいフォルダーの作成] を選択し、バージョン管理された項目に同期するフォルダーを指定して、[OK] を選択します。