連載
» 2009年08月24日 00時00分 公開

エンジニアがお薦めする 現場で使えるツール10選(4):Subversionで簡単・確実にファイルを構成管理 (5/5)

[東秀和,データプロセス]
前のページへ 1|2|3|4|5       

●同時に触りそうな資料はマージする

 2つ目のデメリットは、「マージ」という方法で解決できます。テキストファイルは、履歴情報として変更情報を持っています。ロックを掛けなくても、それぞれ変更したファイルを統合することができます。

 ですが、これで完全というわけではありません。同じ場所(行)を、異なった内容で変更すると、「競合」が発生し、自動的にマージすることができません。マージにはこのような場合もあるので、人の目で確認しながら行うことをお勧めします。

 マージの機能については複雑であるためここでは割愛します。ここまで、ツールの機能だけを見れば、バージョン管理さえ行っていれば担当者同士の上書きの問題は回避でき、各自の作業の履歴が保存できることを説明しました。上書き問題について、多少でも安心を感じていただけたのではないでしょうか。

【その3】お客さんごとに分けた同じような提案書、同じだけど違う!

 あなたの仕事をドキュメントの管理だとします。ある日別の部署から「○○設計書が必要なのだが、ある部分を『ちょっとだけ』変えたものが欲しい。ほんの少しだけ業務形態に違いがあるから」といわれたとします。

 よくある状況だと思いますが、答えは明確です。ドキュメントのコピーを作って2つのコピーを別々に管理すると思います。ただ、それぞれの部署が小さな変更を依頼してくるたび、一方を修正したり、もう一方を修正したりします。

 両方のコピーに同じ修正を加えたいこともよくあります。例えば最初のコピーにスペルミスがあったとします。もう一方のコピーにもおそらく同じ間違いがあると思います。両方のドキュメントはほとんど同じで、ほんの少し違っているだけです。

 これは、オープンソースの開発などに用いられているバージョン管理(ブランチ:branch)の基本的な概念です。つまり、1つの開発の流れがもう一方と独立して存在しているが、過去にさかのぼると同じ履歴を共有しているという状況です。ブランチは必ず何かのコピーから始まり、枝分かれして、自分自身の歴史を持つようになるからです。

図16 ブランチの考え方 図16 ブランチの考え方

 Subversionではファイルやディレクトリのブランチを管理できます。データをコピーしてブランチを作ったり、どのように2つのコピーが関係しているかを記憶しておくことができます。片方のブランチに対する修正をもう一方にも追加する作業を助けることもできます。作業コピーの一部だけ別のブランチにすることもできるので、通常の作業で別の作業のラインを「混ぜ合わせる」(マージする)こともできます。

提案書はベースライン登録し、今後の展開を考える

 ドキュメントは、最新、個別対応、リリースしたものが正しく分かるように最初から設計しておくことをお勧めします。

 図5の中にある言葉を簡単に説明します。

trunk:主となるドキュメントやプログラムを管理するエリア。一通りの流れはここを使っていて、常に最新のものになっています。trunkでの作業は、すでに切ってあるbranchには影響はありません。

branch:リリースごとに切るところ。お客さんごとのバージョン管理をする部分。次のリリースに向けてtrunkで作業しつつ、こちらでリリースされているものの修正などが行えます。

 branchで行った修正はまとめてtrunkにマージすることによって、trunkでもbranchの修正が反映されます。trunkと違って、一度切られたbranchは不具合などが出るまでは変更がないようにする必要があります。

tag:目印、区切りを付けることができます。いわゆるベースラインのことです。リリース直後の一通りのソースが取得できるので、その後の修正で何かあった場合そこまですぐに戻せたりして便利に活用できます。しかも、ファイルごとのバージョンが違っていても、そのときに整合性の取れているものを取得してくれます。

 それでは、使い方を説明します。

1.エクスプローラで【C:\Documents and Settings\hide\デスクトップ\構成管理\trunk】フォルダを右クリック

2.[TortoiseSVN]---[ブランチ/タグ]メニュー

図17-1 メニューの選択 図17-1 メニューの選択(※クリックで拡大)

3.先にURLに【file: ///C:/Documents and Settings/hide/デスクトップ/repo/tag/V1.00】とリリースするバージョンを入力する。今回はtagにしたが、branchでもかまわない

図17-2 登録する種別(tag、branch)とバージョンを入力する 図17-2 登録する種別(tag、branch)とバージョンを入力する(※クリックで拡大)
図17-3 リポジトリブラウザから、各バージョンも取得できる 図17-3 リポジトリブラウザから、各バージョンも取得できる(※クリックで拡大)

筆者からのメッセージ

 今回は、有効なバージョン管理を行うために必要な「構成管理」という考え方を簡単に解説し、そのツールとしてSubversion、TortoiseSVNを紹介しました。

 重要な点は説明したつもりですが、ツールは導入したらすぐに効果が出るものと、その仕組みを理解して導入して効果が出るものの2種類あると考えています。

 構成管理は、後者だと思っております。

 皆さんの職場でも構成管理の考え方を共有し、個人で、そしてチームで、あらためて検討されてみてはいかがでしょうか。

筆者プロフィール

東秀和(ひがしひでかず)

IT技術者としてパッケージソフトウェア開発や映像配信、eラーニングシステム、業務基幹システム構築を経験。2002年ごろからマネジメントに興味を持ち、プロジェクトマネジメント(PM)のコミュニティ活動を通じてPMを学習。現在は受託開発プロジェクトリーダー、および社内標準化活動の主要メンバーとして活躍。人の調和を心掛けマネジメントを行っている。

主に活動しているコミュニティ



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

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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