フォルダーおよびファイルのマージ

フォルダーおよびファイルの分岐」で説明しているさまざまな理由から、多くのソフトウェア開発チームは多様な分岐にフォークするコードベースで作業します。 分岐を使用する場合、最終的に、プロジェクトの特定のフェーズ中にさまざまな分岐で完了した作業を統合する必要があります。 たとえば、完全なバージョンのソフトウェアをテストする準備が整った場合、さまざまな機能チームの分岐に加えられた変更をマージする必要があります。

ここでは、Visual Studio アプリケーション ライフサイクル管理 (ALM) のグラフィカル ユーザー インターフェイスを使用して、さまざまな分岐で加えられた変更をマージする手順について説明します。 コマンド プロンプトでマージを実行する方法については、「Merge Command」を参照してください。

必要なアクセス許可

これらの手順を実行するには、次のアクセス許可を設定する必要があります。

  • ソース ツリー内の項目の [読み取り] のアクセス許可と、ターゲット ツリー内の項目の [チェックアウト] のアクセス許可を [許可] に設定している必要があります。

  • ターゲット パスの [マージ] のアクセス許可が必要です。

  • ターゲット ツリー内の項目の名前を変更する場合は、ソース ツリーとターゲット ツリーの両方の [チェックアウト] のアクセス許可が [許可] に設定されている必要があります。

  • この操作に影響を受けるファイルがロックされている場合、[ロック] のアクセス許可を [許可] に設定する必要があります。 アクセス許可の詳細については、「Team Foundation Server のアクセス許可の参照」を参照してください。

[ソース管理] ウィンドウからのマージの開始

重要

Visual Studio Team Foundation Server 2010 のリリースでは、分岐とフォルダーを区別するようになりました。たとえば、分岐とフォルダーのアイコンが異なることが次の図でわかります。

分岐とフォルダー

フォルダーの分岐およびマージは使用できますが、ベスト プラクティスとしては、分岐のみを分岐およびマージすることをお勧めします。詳細については、「フォルダーおよびファイルの分岐」を参照してください。

ソース管理エクスプローラーからの分岐、ファイル、およびフォルダーのマージ

  1. ソース管理エクスプローラーで、マージする分岐、フォルダー、またはファイルを選択します。

  2. [ファイル] メニューをクリックし、[ソース管理][分岐とマージ] の順にポイントし、[マージ] をクリックします。

    ソース管理マージ ウィザードが表示されます。 マージを実行するこのウィザードの使用方法については、「ソース管理マージ ウィザードを使用したマージの実行」を参照してください。

[変更セットのトラッキング] ウィンドウからのマージの開始

[変更セットのトラッキング] ウィンドウを使用すると、変更セットが作成された場所、マージされる場所、これらのイベントが発生した時間などの情報を確認できます。 また、変更セットをマージしなかった分岐は強調表示されます。 必要な変更セットが見つからない分岐がある場合、ドラッグ アンド ドロップ操作でこの問題を解決できます。

重要

この手順を実行できるのは、分岐に影響がある変更セットのみです。たとえば、分岐とフォルダーのアイコンが異なることが次の図でわかります。

分岐とフォルダー

詳細については、「フォルダーおよびファイルの分岐」を参照してください。

[変更セットのトラッキング] ウィンドウへの変更セットのドラッグ アンド ドロップ

  1. ソース管理エクスプローラーで、分岐内に含まれる分岐、フォルダー、またはファイルを選択します。

  2. 選択した項目を右クリックし、[履歴の表示] をクリックします。

  3. [履歴] ウィンドウで、表示する変更セットを右クリックし、[変更セットのトラッキング] を選択します。

    [分岐の選択] ダイアログ ボックスが表示されます。

  4. (省略可能) [ターゲット分岐] リストで、表示する分岐をオンにし、非表示にする分岐をオフにします。

  5. [視覚化] をクリックします。

    [変更セットのトラッキング] ウィンドウが表示されます。

  6. 変更セットを含む分岐をターゲット分岐にドラッグします。

    ソース管理マージ ウィザードが表示されます。 マージを実行するこのウィザードの使用方法については、「ソース管理マージ ウィザードを使用したマージの実行」を参照してください。

例: 新しいメソッドの検索

上の手順の使用方法について理解できるように、次の例を使用して説明します。 ジュリーはクリスに対して、自分の FeatureTeamB コードで利用している FeatureTeamA コードのどこかで新しいメソッドを実装するように依頼します。 クリスは新しいメソッドのコードを記述し、FeatureTeamA 分岐にチェックインします。 クリスは仕事を終えて帰るときに廊下でジュリーに会い、新しいメソッドをチェックインしたことを伝えます。

ジュリーは机に戻り、最新のソースを検索しますが、クリスがチェックインした新しいメソッドが見つかりません。 ジュリーはソース管理エクスプローラーを開き、FeatureTeamA 分岐の [履歴] ウィンドウを表示し、変更セット 50 でクリスが新しいメソッドを実際にチェックインしていることを確認します。 変更セット 50 を右クリックし、[変更セットのトラッキング] をクリックすると、次のウィンドウが表示されます。

[変更セットのトラッキング] ウィンドウ: 親分岐へのマージ

[変更セットのトラッキング] ウィンドウ: 親分岐へのマージ

ジュリーは、[変更セットのトラッキング] ウィンドウで、クリスが変更セット 50 でメソッドをチェックインし、変更セット 51 で Dev 分岐にマージしたことを確認します。 ただし、変更セット 50 が FeatureTeamB 分岐にマージされるまで、ジュリーは新しいコードを取得できません。 そのため、ジュリーは Dev 分岐を FeatureTeamB 分岐にドラッグしてソース管理マージ ウィザードを起動します。このウィザードを使用してマージを実行します。

ソース管理マージ ウィザードを使用したマージの実行

上記の手順のいずれかを実行して、ソース管理マージ ウィザードを表示します。 このウィザードを使用して、マージのソースとターゲットを指定できます。 1 つの分岐全体を別の分岐にマージすることや、マージする特定の変更セットまたは変更セットのグループを選択することができます。

ソース管理マージ ウィザードを使用したファイル、フォルダー、または分岐のマージ

  1. ソース管理マージ ウィザード[ソース分岐] ボックスに、チーム プロジェクトのソース分岐の名前を入力するか、[参照] をクリックして一覧から分岐を選択します。

  2. [ターゲット分岐] ボックスで、ソース分岐とマージするチーム プロジェクトのターゲット分岐を選択します。

  3. [特定のバージョンまでのすべての変更] オプションまたは [選択された変更セット] オプションのどちらかを選択して、ターゲット分岐にマージする変更の範囲を選択し、[次へ] をクリックします。

    ヒント

    可能であれば、[特定のバージョンまでのすべての変更] をクリックします。これを選択すると、今後マージを行う際に競合のリスクが減少します。

    • [特定のバージョンまでのすべての変更] を選択すると、[ソース項目のバージョンの選択] ページが表示されます。 使用する項目のバージョンを選択します。

      [変更セット]

      変更セットのバージョンを指定することによりマージします。

      日付

      日付のバージョンを指定することによりマージします。

      [ラベル]

      ラベルのバージョンを指定することによりマージします。

      [最新バージョン]

      最新のバージョンを指定することによりマージします。

      [ワークスペース]

      ワークスペースのバージョンを指定することによりマージします。

    • [選択された変更セット] を選択すると、[ターゲット分岐にマージする変更セットを選択します] ページが表示されます。 マージする変更セットを選択します。

      ヒント

      連続した範囲の複数の項目を選択するには、Ctrl キーまたは Shift キーを押しながら項目を選択します。

  4. [次へ] をクリックし、[マージ操作の実行] ページで [完了] をクリックします。

    1 つまたは複数の保留中の変更が生成されます。

  5. (省略可能) 保留中の変更をすぐにチェックインする場合、次の手順を実行します。

    1. [表示] メニューをクリックし、[その他のウィンドウ] をポイントし、[保留中の変更] をクリックします。

    2. [保留中の変更] ウィンドウを使用して変更をチェックインします。 詳細については、「チームのコードベースへの作業のチェックイン」を参照してください。

参照

概念

ソース管理エクスプローラーを使用したバージョン管理下でのファイルの管理

その他の技術情報

Team Foundation バージョン管理での分岐を使用したリスクの分離

Merge Command

Merges Command

Team Foundation バージョン管理の競合の解決