TOPプロジェクト管理> Subversionの運用事例
PHP開発手法
PHP開発手法

第3回:Subversionによるバージョン管理(後編)

著者:ウノウ  中澤 直也   2006/12/20
前のページ  1  2  3
Subversionの運用事例

   先月のことになりますが、写真・動画共有サービス「フォト蔵」が、デザインの大幅なリニューアルを行いました。フォト蔵も例外なくSubversionで管理されています。今回は、フォト蔵におけるSubversionを使ったデザインの大幅なリニューアルの開発過程を紹介します。

   フォト蔵のリニューアルにあたって、まず次の点を考えて開発する必要がありました。
  • 現在、サービスは提供中であること
  • リニューアルは、かなり大幅なソースコードの変更が伴うこと

表2:今回の注意点

   この点を考えて、Subversionの機能の1つであるブランチという機能を使用して開発することにしました。ブランチとは、現在のリポジトリから派生したリポジトリのことをいいます。ブランチに対して、派生元のリポジトリをトランクと呼びます。

   トランクとブランチのイメージを図1に示します。

トランクのブランチのイメージ
図1:トランクのブランチのイメージ

   トランクはブランチの変更の影響をまったく受けないため、例えば不具合の修正といった小さな変更を並行で進めることができます。フォト蔵の開発の場合、トランクは不具合の修正のみに行うようにして、ブランチはリニューアル専用のものを1つ作成しました。

   またブランチを作成して開発する際の注意点として、トランクの変更をブランチにも同じように反映することがあげられます。トランクの変更をブランチに適用することをマージと呼びます。常にトランクの変更を正しくブランチに適用し続けないと、ブランチの開発が終了してトランクへマージする際に、正しくマージすることができませんので注意が必要です。

   マージの作業は、Subversionのmergeサブコマンドを使います。

   ブランチを作成することで、今回の場合はトランクとブランチの並行で進めることができ、効率よい開発が可能となりました。そして、リニューアル前に安定してきたところでブランチの変更をトランクへマージし、リリースするという形をとることができました。

   それでは、具体的なブランチの作成方法とトランクへマージ方法を紹介しましょう。

   例えば「test」モジュールの「test_branch」ブランチを作成するには、次のコマンドを実行します。

$ svn copy -m "branch" file:///var/svn/test/trunk file:///var/svn/test/branches/test_branch

   次にブランチをチェックアウトするには、次のコマンドを実行します。

$ svn checkout /var/svn/test/branches/test_branch

   「test_branch」ブランチの変更をトランクへマージするには、次のコマンドを実行します。

$ svn merge -r [ブランチをしたときのリビジョン番号]:HEAD file:///var/svn/test/test_branch


まとめ

   第2回と第3回に渡って、Subversionの概要とSubversionの導入事例を紹介しました。Subversionは導入や使い方が比較的容易であり、チームでの共同開発をよりよく支援するツールですので、この記事をきかっけとしてSubversionの導入が進むと幸いです。

前のページ  1  2  3


ウノウ株式会社  中澤 直也
著者プロフィール
ウノウ株式会社  中澤 直也
1977年生まれ長野県出身。長野県工科短期大学校情報技術科でコンピュータサイエンスを学び、インターネット、シリコンバレー、FreeBSDに興味を持つ。卒業後、県内の工場でインターネットブラウザ、医用画像表示用ディスプレイを管理するウェブアプリケーションや画質調整ソフトウェアの開発業務に携わる。2006年7月よりウノウに参画。現在、写真・動画共有サイト「フォト蔵」を開発中。

フォト蔵
http://photozou.jp

ブログ「dude・・・」
http://www.sssg.org/blogs/naoya


INDEX
第3回:Subversionによるバージョン管理(後編)
  はじめに
  Subversionの「hook」の使い方
Subversionの運用事例