
ユカイ、ツーカイ、カイハツ環境!(2)
SubversionとTracでファイル管理の“迷宮”から脱出
岡本 隆史
2008/11/6
プロジェクトで修正/仕様変更が“迷宮”入りする理由
ソフトウェア開発を行ううえで、設計書やソースコードのバージョンをきちんと管理することは非常に重要です。構成管理(ファイル管理)を行っていないプロジェクトでは、例えば次のような問題が発生します。
- 2人以上の開発者が同時に成果物を編集した場合、後に編集を始めた開発者がすでに編集を行った開発者の編集内容を上書きしてしまう。結果として、修正したはずのバグや変更したはずの仕様が、設計書やソースコードに反映漏れするという事態が発生
- 設計書やソースコードのレビューを行って修正したはいいが、どこをどう修正したのか分かりにくく、レビュー内容の反映の確認を行っても修正漏れや修正誤りに気が付かない
- ソースコードを変更すると、動かなくなってしまった。正しく動作していたときのソースコードを確認しようとしても、どのバージョンが正しく動作していたのか分からない
![]() |
| 図1 いいかげんな構成管理の問題 |
上記のような問題のため、ソフトウェアの故障の修正漏れ、仕様変更漏れによる品質の低下、低下した品質を取り戻すための追加試験やレビューによる生産性の低下につながります。
本稿では、上記のような問題を解決し、バージョン管理を簡単に行ってくれるオープンソースの「Subversion」(以下、SVN)とSVNをEclipseから利用するための「Subversive」プラグインを紹介し、Tracとの連携方法も解説します。
■ 構成管理ツールの台頭
大昔のソフトウェア開発では、共有フォルダなどを利用し、フォルダ管理者などを置いて人手で管理を行っていました(大昔といっても現在でもフォルダ管理のプロジェクトは多いですが……)。しかし最近では、CVS(Concurrent Version System)やVSS(Microsoft Visual Source Safe)などの構成管理ソフトウェアの登場で、これらの状況は劇的に改善されました。
構成管理ソフトウェアを使うと、成果物は「リポジトリ」と呼ばれるデータベース上で集中管理されます。開発者は成果物を編集して、変更点を記述したコメントを添えてリポジトリへ反映(コミット)するだけで、自動的に成果物の変更履歴を取ることができます。また、複数の開発者が同時に成果物を編集した際の変更の反映漏れを防ぐことができます。
■ 構成管理ツールの2つのタイプ
構成管理ソフトウェアには、2つのタイプがあります。CVSに代表される複数の開発者による同時編集を許し、競合が起こった部分を開発者が主導で修正していく「共有モデル」と、VSSに代表されるファイルにロックを掛け、1人しか編集できないようにする「ロックモデル」です(VSSの最新版では、共有モデルも選択できます)。
共有モデルは、「編集の競合が発生した場合修正に手間が掛かる」「ExcelやWordなどのバイナリファイルが扱いづらい」という問題があり、ロックモデルは、「ある開発者がファイルのロックを取得したままの状態のとき、ほかの開発者がファイルを編集できない」という問題がありました。
■ そしてSVNへ
SVNは、CVSの欠点を解消したバージョン管理システムとして開発、公開されました。SVNは次のような特徴を持っています。
- 成果物をリポジトリ(成果物のバージョンを管理するデータベース)で管理
- HTTP/HTTPSプロトコルを利用してリポジトリへアクセスできるため、ファイアウォールなどでポートが制御されている環境でも利用しやすい
- ファイルごとに「共有ロック」「排他ロック」を指定でき、ソースコードのような共有モデルが向いている成果物は共有ロックモデルで、ExcelやWordの設計書など、ロックモデルが向いている成果物はロックモデルで利用できる
- リポジトリ全体を「リビジョン」と呼ばれるバージョン番号で管理している。複数のファイルにまたがる変更を1つの変更として扱うことができ、個々のファイルの変更履歴ではなく、バグ修正、機能追加など、意味を持つ変更のまとまりとして、変更履歴を追っていくことができる
- 「TortoiseSVN」を利用すると、ExcelやWordなどの差分も見ることができる
- オープンソースソフトウェアとして開発され、無償で利用でき、多数のオープンソースプロジェクトで利用され、実績は折り紙付き
- 「CollabNet Subversion」「Trac Lightning」を利用することにより、簡単にリポジトリを設置できる
ソフトウェア構成管理ツールとしては、以前はCVSが利用されることが多かったのですが、最近はSVNが利用されるようになってきています。最新のSubverison 1.5では、複数のブランチを管理する際に「マージトラッキング」機能が追加されたり、大規模な開発に便利な「ライトスルーキャッシュ」機能などが追加され、さらなる高機能化が進んでいます。
また、SVNと連携できるITS(Issue Tracking System、課題やバグを管理するためのシステム)も増えてきていて、コミットログを関連するタスクやバグに簡単にひも付けることも可能です(参考:Mylyn&Tracでリズムに乗ってタスクを大掃除♪)。
コラム 「プログラマー以外も必見! 文書の構成管理もできる」 |
||||
ソフトウェア構成管理ツールを利用して、ソースコードや設定ファイルを管理しているプロジェクトは多いですが、ExcelやWordなどの設計書を管理しているプロジェクトは非常に少ないです。まだまだ、共有ファイルサーバで管理しているプロジェクトも多いです。そういうプロジェクトでは、図2のようなフォルダをよく見掛けます。
さて、図2の画面設計書の最新版はどれでしょうか。
SVNを利用すると、このような設計書もきちんと構成管理できます。また、Windowsのエクスプローラに統合して利用できるSVNクライアントである「TortoiseSVN」を利用すると、ExcelやWordの差分も簡単に確認できます(図3)。
この差分表示機能は、レビュー後に設計書を修正した場合、レビューで指摘した点がきちんと修正されているかどうか確認したり、仕様変更があった場合、仕様変更点を確認するのに便利です。 ソースコードや設定ファイルだけではなく、ぜひ設計書もSVNで管理してみましょう。 |
次ページでは、SubersiveとTrac Lightningをインストールして、使い始めましょう。
| Index | ||||||||||
|
||||||||||
ユカイ、ツーカイ、カイハツ環境! バックナンバー 連載インデックスへ»
- 第1回 Trac Lightningで始めるチケット式開発「電撃」入門
- 第2回 SubversionとTracでファイル管理の“迷宮”から脱出
- 第3回 分散バージョン管理Git/Mercurial/Bazaar徹底比較
- 第4回 Aptanaなら開発環境とクラウドの連携が超お手軽!
- 第5回 App Engine/AptanaなどJavaクラウド4つを徹底比較
- 第6回 Eclipse 3.5 Galileoの「実に面白い」新機能とは
- 第7回 ブラウザを選ばずWebテストを自動化するSelenium
- 第8回 JUnit/FindBugs/PMDなどを総観できるQALab/Limy
- 第9回 Googlerも使っているIntelliJ IDEAのOSS版を試す
- 第10回 Webのバグを燃やしまくるFirebugと、そのアドオン7選
- 第11回 DB設計の神ツール「ERMaster」なら、ここまでできる
| Java Solution全記事一覧 |
ホワイトペーパー(TechTargetジャパン)
- Webの表示速度を遅くする「SSLハンドシェイク」とは (2010/2/9)
安全性を担保しようとWebページにSSLを適用すると、負荷の高い処理が実行される。速度と安全性は両立できるのか? - クラウド活用「雲活」のために押さえるべき39のポイント (2010/2/2)
活用するべきサービスか否か、クラウドの利点・問題点、クラウドプラットフォーム提供企業になるための条件、開発者がするべきことに分けて紹介 - 再利用性の高いクラス作成に重要な“アクセス制御” (2010/1/28)
Javaのアクセス修飾子public、private、protectedや、Eclipseで簡単に作れるアクセサメソッドgetter、setterについて解説 - DB設計の神ツール「ERMaster」なら、ここまでできる (2010/1/21)
直感的なUIに、カスタマイズ可能な、Excel出力のテーブル定義書、辞書機能など多機能なERモデリングの無料Eclipseプラグインです
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |









