TOPプロジェクト管理> 変更セット
個人からチームの生産性向上へ
チーム開発ここまできた、個人からチームの生産性向上へ

第2回:Visual Studio 2005の変更管理の有効性
著者:日本ユニシス  井上 浩司  2006/1/10
前のページ  1  2   3  4  次のページ
変更セット

   変更セットは、チェックインの際に作成される各種ドキュメントやコードの変更内容をひと括りにした作業単位のことです。変更セットには以下の情報が含まれます。
  • 変更セットID
  • 変更日時
  • チェックイン実施者
  • チェックインコメント
  • チェックインノート
  • 変更ファイル一式

表1:変更セットに含まれている情報

チェックイン画面
図1:チェックイン画面
(画像をクリックすると別ウィンドウに拡大図を表示します)

   さらに、この変更セットは作業項目と関連付けることができます。やり方は非常に簡単です。チェックインの際に「作業項目」のメニューから関連するタスクを選択するだけです。

作業項目との関連付け
図2:作業項目との関連付け
(画像をクリックすると別ウィンドウに拡大図を表示します)

   このように変更セットは、自分が作業した内容をまとめてチェックインする際に非常に便利です。なお、変更セットIDと変更日時、チェックイン実施者はVS2005 TFSが自動的に記録してくれますので、チェックインの際に作業を改めて振り返ることもできるようになり、作業ミスが減りますし、実際のチェックイン作業も楽に行えます。


ブランチ

   ブランチは、プロジェクト内のソースツリーのあるフォルダを別のフォルダにコピーすることで、別のバージョンとして新しく管理できる機能です。

   これにより、コピー元とコピー先で並行管理することが可能になります。

   コピー元、コピー先のいずれかで問題が発生しても、ブランチ固有の問題なのかブランチする前から存在する共通の問題なのかを切り分けて考えることができるようになり、問題を限定することで原因追及を楽にします。

フェーズ分割された開発
図3:フェーズ分割された開発

   ブランチの作成は、ソースコントロールエクスプローラから行います。ブランチしたい(コピー元)ディレクトリを右クリックしてコンテキストメニューの「Branch」を選択し、指定のターゲットを選択すればよいのです。その際、どのバージョンからブランチするのかを選択することができます。

ブランチの作成
図4:ブランチの作成
(画像をクリックすると別ウィンドウに拡大図を表示します)


マージ

   マージは、コピー元のソースコードの修正をコピー先のソースコードに反映する機能です。

   VS2005 TFSのようなマージが前提のソースコード管理システム(後述します)において、競合する場合があります。

   競合は、同じ行に修正がある場合に発生します。この場合、どちらか一方の修正をいかすか、手動によるマージを行う必要があります。

   VS2005 TFSには、競合を解決するためのマージツールが搭載されています。マージツールを使って、マージ後のソースコードを確認しながら衝突を解決することができます。このマージツールは、頻繁にコードの変更が行われる場合に特に有効です。

   というのも、Visual Studio 2005にはリファクタリングの機能が搭載されているからです。

   このため今までより頻繁に変数名やメソッド名が変更される可能性があります。このような場合にはGUIで確認しながらマージを行わなければ他人の変更をロストアップデートしてしまいます。

マージツールによる解決
図5:マージツールによる解決
(画像をクリックすると別ウィンドウに拡大図を表示します)

マージが前提のソースコード管理システム

   マージを行ってすぐにチェックインしてしまうと、それは中途半端な修正をチェックインしてしまうことになります。というのもマージされたコードは誰もテストを行っていないからです。よってチェックインする前に、マージが妥当なものかどうかを検証する必要があります。一番手っ取り早いやり方は、単体テストがすべてクリアしたらチェックインするというルールを設けることです。

単体テストを強制するには、後述するチェックインポリシーを利用するとよいでしょう。またマージして単体テストが通らなくなった場合には、シェルブ(後述)を活用して関連する開発者とコードを共有しながら修正する流れが効果的だと考えます。

前のページ  1  2   3  4  次のページ


日本ユニシス株式会社 井上 浩司
著者プロフィール
日本ユニシス株式会社  井上 浩司
総合技術研究所 所属
オープンミドルウェアMIDMOST for .NETの開発や、MSCSを補完するACABの開発に従事しています。


INDEX
第2回:Visual Studio 2005の変更管理の有効性
  はじめに
変更セット
  品質の向上
  無駄な時間の削減