Gitでは「コミットを行い、レビューを実施し、問題がなければマージ」という手順が広く使われているが、TFVCではレビューを受ける際は「シェルブ」という機能を使うと効率的な作業が可能だ。シェルブとは日本語では「棚」という訳語が当てられており、その通りチェックイン前に一度サーバーに保存できる。サーバーに現在のソースコードを保存することから、シェルブはレビュー以外でも以下のように多くの状況で使用することが可能だ。
なお、Gitでもstashコマンドを使用すればローカルで一時的に隠すことが可能だ。stashはローカルに保持するだけなので、他人と作業状態を共有するものではない(共有する場合はブランチを使う)が、割り込みで別作業を行う場合には便利だ。
状況 | 説明 |
---|---|
割り込み作業 | 現在の作業の実施中に緊急のバグ修正および、調査を行うため、作業中の状態を一時的に保存して 別の作業を行う。 ※:Premium Edition以上で使用可能(VS 2015よりProfessionalでも使用可能) |
共同作業 | チェックインの品質に達していないコードを他のメンバーと共同で編集する |
コードレビュー | チェックイン前に別のメンバーに編集の確認をしてもらう ※:Premium Edition以上で使用可能(VS 2015よりProfessionalでも使用可能) |
プライベートビルド | ゲートチェックインやプライベートビルドで使用する。チェックイン前に自動ビルドを行い、ビルドとテストを行える |
バックアップ | 他のメンバーや異なる環境で編集を継続するために、サーバーに一時的に保存する。 |
ハンドオフ | 編集中のソースコードを他のメンバーに引き渡す。 |
シェルブの用途 |
作業中に別の優先度の高い緊急バグ修正が割り当てられることはよくある。自分に割り当てられている作業はチームエクスプローラーの[担当作業]ページに表示される。VS Onlineの既定の設定では作業項目を割り当てただけでは、メンバーは明示的にチームエクスプローラーの[担当作業]ページや[作業項目]ページを見るしかないが、VS OnlineのWebポータルで設定すれば特定のイベント発生時にメール通知が行われる。この設定画面はチームエクスプローラーの[設定]ページで[チーム プロジェクト]-[プロジェクトの通知]リンクをクリックすれば表示される。
では、割り込み作業を行うことでシェルブを使ってみよう。チームエクスプローラーの[担当作業]ボタンをクリックすると、現在の担当作業が一覧で表示される。
現在処理中の作業が[処理中の作業]に表示されている。今の編集作業よりも[使用できる作業項目]にあるバグ[153 - 画面配色の見直し]が優先度の高い作業である場合、[中断]ボタンをクリックすることで、現在のウィンドウ状態や開いているソリューションの情報が全てシェルブとしてサーバーに保存される。
バグ153を右クリックして、コンテキストメニューの[処理中に追加]を選択すると、バグ153が現在の作業となる。
シェルブを使うとこのようにして、現在の作業と突発的に発生した優先度の高い作業をVSのウィンドウ状態を壊すことなく、切り替えることが可能だ。
スタイルシートの変更作業を通して、シェルブを(間接的に)使ったレビュープロセスを実施してみよう。ここではバグ153の「画面配色の見直し」で「配色を明るくする」という要望があったものとして、bootstrap.cssファイルの.jumbotronクラスとsite.cssファイルのbody要素のbackground-color属性の2カ所を変更した。これで問題ないか、レビュワーにレビュー依頼を送付する。これには[保留中の変更]ページで[アクション]メニューから[レビューの要求]を実行する。
レビュー要求が作成されると、レビュワーの担当作業にレビュー依頼が追加され、メール通知が行われる。以下は[担当作業]ページに表示されたレビュー要求の例だ。
表示された要求をダブルクリックすると、チームエクスプローラーの[コード レビュー]ページにそのレビューの詳細が表示されるので、ここから該当ファイルの内容を開いて確認できる。レビューはVSでも行えるが、 出先などでVSがない場合でもブラウザーがあればレビューは可能だ。修正点に対してコメントも付けられる。
レビュー対象のコードはシェルブセットしてVS Onlineに格納されているため、いつでもどこでもレビューが可能になっている。
VSでもVS OnlineのWeb画面でも、画面上で差分を比較しながら各ファイルに対してコメントを追加できる。レビューコメントを付けて、送信すると、依頼者にメールで通知が行われる。
Gitと同様に、VS OnlineのTFVCチームプロジェクトにおけるブランチの特徴をここでまとめておこう。
TFVCでの基本的なブランチ、マージ、レビューのサイクルを紹介したが、Git Flowのようにもっと多くのブランチを作成して運用することもできる。ALM Rangersというグループが公開している無料のガイダンスがあり、日本語翻訳されているので、ぜひ参考にしてほしい。
いかがだっただろうか。GitもTFVCもブランチとマージを使用することにより安定版のソースコードに影響を与えることなくコードを編集することが可能だ。作業項目と関連付けをうまく行って、効率的な開発を行ってほしい。
Copyright© Digital Advantage Corp. All Rights Reserved.