連載:Team Foundation Server 2010入門

第3回 Team Foundation Server 2010で一歩先行くソース管理

WINGSプロジェクト りばてぃ(監修:山田 祥寛)
2010/08/24
Page1 Page2 Page3

TFS 2010におけるマージの実施手順

 TFSのマージ機能は、ソース(=分岐元)からターゲット(=分岐先)に変更を反映させるにも、その逆方向に反映させるにも、ほとんどの作業がウィザードに従うだけで完了する。これは、TFSがたがいの変更個所を認識し、大半は自動的にマージしてくれるためだ。まれに変更個所が競合してしまい、手動でマージする必要があるケースもあるが、筆者の経験ではその頻度は割と少なく、そうなったとしても問題なく解決できてしまうことがほとんどだ。

 実際にTFS 2010でマージを行う場合には、[ソース管理エクスプローラー]で、マージ元となるフォルダやソース・ファイルを選択し、それを右クリックしてメニューから[分岐とマージ]−[マージ]を選択する。今度は図5のような[ソース管理マージ ウィザード]ダイアログが表示される。

図5 [ソース管理マージ ウィザード]ダイアログによるマージの実行

 このダイアログの[マージするソース分岐の変更を選択します]では、すべての変更をマージの対象にする場合には[特定のバージョンまでのすべての変更]ラジオボタンを選択し、特定の変更だけを対象にする場合には[選択された変更セット]ラジオボタンを選択する。

 なお、「変更セット」という聞き慣れない単語が登場しているが、これはTFS特有の概念だ。例えばVSS(Visual SourceSafe)であれば、チェックインはそれぞれのファイル単位で記録されていて、どのファイルがいつ誰によってチェックインされたかを管理していた。一方、TFSでは、同時にチェックインされたファイル群は1つの固まりとして管理されていて、いつ誰がどのファイル群をチェックインしたかを管理している。このチェックインされたファイル群(固まり)を「変更セット」と呼んでいる。

 最後に、[ターゲット分岐]ドロップダウンリストでは、マージ元として選択したフォルダやファイルと「分岐」の関係にある分岐の一覧が表示されるので、ここから変更を反映させたい分岐を選択し、[次へ]ボタンをクリックする。

 もし、[特定のバージョンまでのすべての変更]ラジオボタンを選択していた場合、今度は図6のように[バージョンの種類]で、どのバージョンの内容を反映させるかを問われるので、例えば「最新バージョン」など、任意のバージョンの種類を選択し、[次へ]ボタンをクリックする。

図6 マージ対象のバージョンの種類の選択

 「最新バージョン」以外にもいくつか選択肢が用意されているので、それぞれの項目によってどのようになるかは、ぜひ自分の手で確認してみてほしい。これで準備ができたので、[完了]ボタンをクリックすれば、実際にマージ処理が行われる。

 一方、前述の[ソース管理マージ ウィザード]ダイアログで[選択された変更セット]ラジオボタンを選択していた場合、図7のようにマージする変更セットを問われるので、対象となる変更セットを選択する。

図7 マージ対象の変更セットの選択

 変更セットは1つでも複数でも選択できるので、マージ対象とするものを選択していこう。こちらもこれで準備は終わりで、後は[完了]ボタンをクリックすれば、マージが行われる。

 いずれの方法でマージを実行したとしても、競合が発生すると、図8のように競合を示す案内が[ソース管理エクスプローラー]内に表示される。

図8 [ソース管理エクスプローラー]における競合の通知

 この場合は、分岐先の内容を維持する[ターゲット分岐バージョンを保持する]を選択するか、両者の変更個所を手動で反映していく[マージ ツールで変更をマージする]を選択する。後者を選択した場合は、図9のようなダイアログ画面を用いて双方のファイルの相違個所を確認しながら、最終的なファイルの内容をどのようにしていくのかを調整することになる。

図9 マージ・ツールによるマージの実施

 なお、この作業は競合1つにつき、1回行う必要があるため、競合が多数の場合には、膨大な時間を要することになってしまう。特に開発初期の段階で分岐を行い、修正個所が重複すると、(開発初期は新規作成・修正するコードが広範囲にわたるため)この問題が顕著になってくる。従って、開発初期の段階では極力、分岐に頼らない方法にするか、分岐を行う場合には開発対象範囲を明確にしておくといった運用上の工夫が必要だ。

 無事にマージが終わると、マージ先のファイルはチェックアウトされた状態で新しい内容に置き換わっている。例えばビルドや単体テストなどを行い、問題がなければチェックインを行って、マージ結果をTFSにきちんと反映させておこう。自動的にはチェックインが行われていないという点には気を付けていただきたい。

 続いて、チェックイン・ポリシーについて紹介しよう。


 INDEX
  [連載]Team Fourndaiton Server 2010入門
  第3回 Team Foundation Server 2010で一歩先行くソース管理
    1.分岐とマージとは?/TFS 2010における分岐の実施手順
  2.TFS 2010におけるマージの実施手順
    3.チェックインの制約/チェックインの棚上げ

インデックス・ページヘ  「連載:Team Foundation Server 2010入門」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間