連載
» 2015年06月30日 05時00分 公開

連載:TFVC vs Git:第3回 GitとTFVCのブランチとマージ (6/6)

[亀川和史,著]
前のページへ 1|2|3|4|5|6       

シェルブ

 Gitでは「コミットを行い、レビューを実施し、問題がなければマージ」という手順が広く使われているが、TFVCではレビューを受ける際は「シェルブ」という機能を使うと効率的な作業が可能だ。シェルブとは日本語では「棚」という訳語が当てられており、その通りチェックイン前に一度サーバーに保存できる。サーバーに現在のソースコードを保存することから、シェルブはレビュー以外でも以下のように多くの状況で使用することが可能だ。

 なお、Gitでもstashコマンドを使用すればローカルで一時的に隠すことが可能だ。stashはローカルに保持するだけなので、他人と作業状態を共有するものではない(共有する場合はブランチを使う)が、割り込みで別作業を行う場合には便利だ。

状況 説明
割り込み作業 現在の作業の実施中に緊急のバグ修正および、調査を行うため、作業中の状態を一時的に保存して
別の作業を行う。
※:Premium Edition以上で使用可能(VS 2015よりProfessionalでも使用可能)
共同作業 チェックインの品質に達していないコードを他のメンバーと共同で編集する
コードレビュー チェックイン前に別のメンバーに編集の確認をしてもらう
※:Premium Edition以上で使用可能(VS 2015よりProfessionalでも使用可能)
プライベートビルド ゲートチェックインやプライベートビルドで使用する。チェックイン前に自動ビルドを行い、ビルドとテストを行える
バックアップ 他のメンバーや異なる環境で編集を継続するために、サーバーに一時的に保存する。
ハンドオフ 編集中のソースコードを他のメンバーに引き渡す。
シェルブの用途

 作業中に別の優先度の高い緊急バグ修正が割り当てられることはよくある。自分に割り当てられている作業はチームエクスプローラーの[担当作業]ページに表示される。VS Onlineの既定の設定では作業項目を割り当てただけでは、メンバーは明示的にチームエクスプローラーの[担当作業]ページや[作業項目]ページを見るしかないが、VS OnlineのWebポータルで設定すれば特定のイベント発生時にメール通知が行われる。この設定画面はチームエクスプローラーの[設定]ページで[チーム プロジェクト]-[プロジェクトの通知]リンクをクリックすれば表示される。

VS Onlineでのアラートルールの設定 VS Onlineでのアラートルールの設定
  (1)通知先のメールアドレスを表示、編集する。
  (2)より詳細な通知設定を行う画面に切り替える。
  (3)作業項目が他の人によって変更されたときに通知する。
  (4)チェックインが行われたときに通知する。
  (5)全てのビルドが終了したときに通知する。
  (6)自分のビルドが終了したときに通知する。
  (7)ビルド品質が変わったとき通知する。
  (8)取り組んでいる変更に対するコードレビューが依頼された場合。

割り込み作業が発生したので現在の作業をシェルブに一時的に保存する

 では、割り込み作業を行うことでシェルブを使ってみよう。チームエクスプローラーの[担当作業]ボタンをクリックすると、現在の担当作業が一覧で表示される。

チームエクスプローラーの担当作業 チームエクスプローラーの担当作業
  (1)作業の中断を実行する。中断時にメッセージを登録できる。
  (2)レビューを依頼する。
  (3)チェックインを行う。
  (4)IDを指定して作業項目を追加する。
  (5)現在作業中の変更点の表示。
  (6)作業項目を新規作成する。
  (7)作業項目検索クエリを開く。
  (8)イテレーションを選択する。
  (9)現在使用可能な作業項目の一覧。
  (10)コードレビューの種類を変更する。
  (11)レビュー対象クエリ処理を開く。

 現在処理中の作業が[処理中の作業]に表示されている。今の編集作業よりも[使用できる作業項目]にあるバグ[153 - 画面配色の見直し]が優先度の高い作業である場合、[中断]ボタンをクリックすることで、現在のウィンドウ状態や開いているソリューションの情報が全てシェルブとしてサーバーに保存される。

 バグ153を右クリックして、コンテキストメニューの[処理中に追加]を選択すると、バグ153が現在の作業となる。

現在の作業を中断 現在の作業を中断
  (1)割り込み作業を完了する。
  (2)現在実施している作業。
  (3)中断している作業に切り替える。
  (4)中断作業をマージする。
  (5)現在中断している作業一覧。

 シェルブを使うとこのようにして、現在の作業と突発的に発生した優先度の高い作業をVSのウィンドウ状態を壊すことなく、切り替えることが可能だ。

シェルブを使ったレビュープロセス

 スタイルシートの変更作業を通して、シェルブを(間接的に)使ったレビュープロセスを実施してみよう。ここではバグ153の「画面配色の見直し」で「配色を明るくする」という要望があったものとして、bootstrap.cssファイルの.jumbotronクラスとsite.cssファイルのbody要素のbackground-color属性の2カ所を変更した。これで問題ないか、レビュワーにレビュー依頼を送付する。これには[保留中の変更]ページで[アクション]メニューから[レビューの要求]を実行する。

レビュー要求 レビュー要求
  (1)シェルブセットを検索する。
  (2)競合を解決する。
  (3)現在の作業を全て元に戻す。
  (4)レビューを依頼する。
  (5)ワークスペースの管理ダイアログを表示する。
  (6)ソース管理エクスプローラーで開く。

 レビュー要求が作成されると、レビュワーの担当作業にレビュー依頼が追加され、メール通知が行われる。以下は[担当作業]ページに表示されたレビュー要求の例だ。

レビュー要求の到着 レビュー要求の到着
  (1)コードレビューの種類を変更する。
  (2)レビュー検索クエリダイアログを表示する。
  (3)検索結果、もしくは依頼されたレビュー一覧。

 表示された要求をダブルクリックすると、チームエクスプローラーの[コード レビュー]ページにそのレビューの詳細が表示されるので、ここから該当ファイルの内容を開いて確認できる。レビューはVSでも行えるが、 出先などでVSがない場合でもブラウザーがあればレビューは可能だ。修正点に対してコメントも付けられる。

VS Onlineに登録されたシェルブセットのレビュー VS Onlineに登録されたシェルブセットのレビュー
  (1)選択されているシェルブ名。
  (2)シェルブに関連付けられている作業項目とレビュー要求。
  (3)ファイルに対してコメントを付ける。
  (4)変更されているファイル数。
  (5)変更されたファイルの差分比較。

 レビュー対象のコードはシェルブセットしてVS Onlineに格納されているため、いつでもどこでもレビューが可能になっている。

VSでのレビュー VSでのレビュー
  (1)修正前後の差分比較。
  (2)修正者からのレビュー依頼コメントとそれに対する返信を付ける。
  (3)全般的なコメントを追加する。
  (4)ファイル単独へのコメントと保存を行う。

 VSでもVS OnlineのWeb画面でも、画面上で差分を比較しながら各ファイルに対してコメントを追加できる。レビューコメントを付けて、送信すると、依頼者にメールで通知が行われる。

レビュー結果コメントの送信 レビュー結果コメントの送信
  (1)コメントを送信する。
  (2)現在のシェルブセットに関連付けられている作業項目および、アンシェルブされる変更ファイルを表示する。
  (3)該当する作業項目を開く。
  (4)コメント「良い」を付けてレビューを完了する。
  (5)コメント付きでレビューを完了する。
  (6)要修正でレビューを完了する。

 Gitと同様に、VS OnlineのTFVCチームプロジェクトにおけるブランチの特徴をここでまとめておこう。

VS OnlineのTFVCチームプロジェクトにおけるブランチの特徴

  • TFVCではVS Online上にブランチを作成し、それをメンバーがダウンロードする形式(中央集権型。ローカルリポジトリにブランチを作成しサーバーに反映といったことはできない)
  • Git Flowと同様な運用は可能
  • ブランチの作成/マージなどにはソース管理エクスプローラーを使用する
  • マージ時にコードが衝突したらマージツールを使ってどれを有効にするかを個別に指定可能
  • シェルブとはコードをサーバーに一時的に保存する機能。割り込みで作業が発生したときに、現在の作業をシェルブに保存する、コードレビューを要求するといった場合に使用できる


 TFVCでの基本的なブランチ、マージ、レビューのサイクルを紹介したが、Git Flowのようにもっと多くのブランチを作成して運用することもできる。ALM Rangersというグループが公開している無料のガイダンスがあり、日本語翻訳されているので、ぜひ参考にしてほしい。

 いかがだっただろうか。GitもTFVCもブランチとマージを使用することにより安定版のソースコードに影響を与えることなくコードを編集することが可能だ。作業項目と関連付けをうまく行って、効率的な開発を行ってほしい。

「連載:TFVC vs Git」のインデックス

連載:TFVC vs Git

前のページへ 1|2|3|4|5|6       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。