Visual Studio .NETによるチーム開発事始め

Visual SourceSafeによるソース管理(準備編)

一色 政彦
2003/10/08
Page1 Page2 Page3 Page4


Back Issue
Visual C# .NETでAPIリファレンスを作る(前編)
Visual C# .NETでAPIリファレンスを作る(後編)

 あなたのチームでは、プログラムのソース・ファイルを安全に管理できているだろうか?

チーム開発におけるソース管理の問題

 チーム開発では、複数の開発者でプログラムのソース・ファイルを共有して、アプリケーションを開発することが一般的である。ソース・ファイルをチームで共有するので、複数の開発者が同じファイルを同時にコーディング(編集)してしまうような状況が考えられる。そのような場合に、もしソース・ファイルを管理する仕組みがなければ、ソース・ファイルを上書きしてしまって、別の開発者が記述したコードを書き換えてしまうだろう。

 例えば、Aさんが「editview.cs」というファイルに「クリップボード操作の機能」を実装し、Bさんが同じファイルに「印刷機能」を同時期に実装しているとする。まずAさんがチームで共有している元のソース・ファイル「editview.cs」を更新し、次にBさんがチーム共有のソース・ファイルを“Aさんがすでに更新したことに気づかずに”そのまま上書き更新してしまうと、当然ながらAさんが実装した「クリップボード操作の機能」は、Bさんのファイルによって上書きされて消失してしまう。このようなトラブルは、特にチームの開発人数が多い場合は、頻繁に発生する可能性が高いだろう。

ソース管理が不十分な場合のトラブル例
同一のファイルを複数の開発者が編集してしまうと、一方の編集内容が失われてしまう。

■ソース管理のソリューション

 このような状況を回避するには、ソース・ファイルの変更を管理することが不可欠である。ソース・ファイルの変更を管理(制御)すれば、「更新するファイルがそのまま上書きできるか、できないか」という判断を下せるようになり、上述の例のようにチームで共有しているソース・ファイルが不注意に上書きされるのを防止できるからだ。

 このようなソース・ファイルの変更を管理する手段としては次の2つの方法が考えられる。1つは、ある開発者がコーディング(編集)しているソース・ファイルを、ほかの開発者にコーディングさせないようにする、つまり「コーディング中のファイルをロック(排他制御)する」という方法だ。もう1つは、「開発者がコーディングしたソース・ファイルと、チームで共有しているソース・ファイルとの相違部分をソース管理者が調べて、両方のソース・ファイルを統合(マージ)する」という方法である。

 ここでは、後者の「統合(マージ)する方法」によりソース管理を行う場合の実際の管理作業手順を、もう少し具体的に見ていくことにしよう。

 まず、ソース管理者が「開発者の更新したソース・ファイル(以降、開発者の個別ファイル)」の内容と「チーム共有のソース・ファイル(以降、チーム共有ファイル)」の内容を比較して差分情報を取得し、「開発者の個別ファイル」で「チーム共有ファイル」をそのまま上書きできるかどうか確かめる。次に、上書き可能ならばそのまま上書きし、そうでない場合は、差分情報を基に「開発者の個別ファイル」のコード変更内容と同じ変更を「チーム共有ファイル」に追加して、「開発者の個別ファイル」と「チーム共有ファイル」をマージ(統合)する。それもできない場合は、開発者に個別ファイルを戻して、現在のソース・ファイルを再度、コーディングし直すように依頼する。ソース管理を行うには、以上のような作業が必要だろう。

 しかし、この作業をソース管理者がすべて行うのは非現実的である。これでは、ソース管理者は開発者が更新したすべてのソース・ファイルの内容をチェックしなければならず、自分の仕事がほとんどできなくなってしまうだろう。そこで、これらのソース管理の作業を「ソース管理ツール」に代行してもらうのだ。ソース管理ツールを使えば、ソース管理の作業の多くを自動化することができ、その管理コストを低減させることができる。しかも、人手を介さないのでソース管理の安全性を高めることにもつながる。このようにソース管理ツールは、効率的なチーム開発において必須のツールである。

 ソース管理ツールによって実現される2つのソース管理ソリューションを次の図にまとめた。

ソース管理ツールによるソリューション(1):<ロック(排他制御)>
チェックアウトしたファイルは、ほかの開発者には編集できないようにしてファイル内容の一貫性を保つ。
 
ソース管理ツールによるソリューション(2):<マージ(統合)>
複数の開発者が編集した内容を調べ、それぞれの変更内容をマージすることでファイル内容の一貫性を保つ。
 

 INDEX
  Visual Studio .NETによるチーム開発事始め
  Visual SourceSafeによるソース管理(準備編)
  1.チーム開発におけるソース管理の問題
    2.Visual SourceSafeでバージョン管理
    3.Visual Studio .NETのIDEでソース管理
    4.Visual SourceSafeサーバのインストール
 
インデックス・ページヘ  「Visual Studio .NETによるチーム開発事始め」


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 記事ランキング

本日 月間