TOPプロジェクト管理> はじめに
PHP開発手法
PHP開発手法

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

著者:ウノウ  中澤 直也   2006/12/20
1   2  3  次のページ
はじめに

   前回は、Subversionの概要と使い方について紹介しました。今回は、ウノウにおけるSubversionの導入事例とウノウで提供している写真・動画共有サービス「フォト蔵」を例に、具体的なSubversionの運用事例を紹介します。
Subversionの導入事例

   本連載の「第1回:PHP開発の手法とは」でも紹介した通り、ウノウではソースコードの管理システムとしてSubversionを導入しています。

   Subversionでは、ウノウで提供しているサービスやウノウラボ(blog)で公開しているものまで、すべてのサービスのソースコードを1台の開発用サーバで管理しています。

   今日現在では、1つのリポジトリに約15個のモジュールが管理されています。管理しているソースコードは、主に次のようなものです。

  • PHPのソースコード
  • その他のPHP用ライブラリ
  • 画像ファイル、JavaScript、CSSファイル
  • Flashのプロジェクトファイル
  • Windows用のクライアントソフトウェアのインストーラ

表1:管理しているファイル

   ウノウでは表1の通り、サービスに使われているプログラムはもちろん、その他の必要なプロジェクトファイルなども例外なく、すべてSubversionでバージョン管理しています。

   Subversionでは、テキスト形式のファイルだけではなく、その他のバイナリ形式のファイルもまとめて管理することが可能です。ただしバイナリ形式のファイルの場合は、変更内容(差分)を参照することはできません。またワード(拡張子がdoc)やエクセル(拡張子がxls)のファイルは、バイナリ形式のファイルとなります。


共通の開発環境と個人の開発環境

   筆者の会社では、エンジニアが開発サーバにログインしてサービスの開発を行っています。開発サーバには、SubversionとWebサーバがインストールされており、「共通の開発環境」「個人の開発環境」の2つがまったく別の環境になるように構築しています。

   両方の環境とも、Subversionのリポジトリからチェックアウトしたリポジトリのコピーの上で動くように構築されています。そのため、共通の開発環境をすぐに更新することが可能です。

   「共通の開発環境」は、テスターが試験する環境となっています。また共通の開発環境は、本番環境へアップロードする直前の環境です。本番環境へのアップロードは、必ずエンジニアではなく「テスター」が更新する体制をとっています。

   「個人の開発環境」とは、エンジニア個人ごとに完全に分かれている開発環境です。個人の開発環境は、どんな変更をしても共通の開発環境には影響を与えないようになっています。個人の開発環境で機能追加などの変更をした後は、Subversionでコミットすることで、自動的に「共通の開発環境」に反映されるような仕組みを構築しています。

   この仕組みは、Subversionの「hook」という機能を使って実現しています。この「hook」とは、リポジトリに変更がある直前や直後に特定のプログラムを実行させる仕組みのことです。

   ウノウでは個人の開発環境からのコミット直後の「hook」に「共通の開発環境を更新する」、つまり「svn update」コマンドを実行するように設定しています。こうすることで、先ほど述べたように自動的に「共通の開発環境」に反映されるのです。

1   2  3  次のページ


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

フォト蔵
http://photozou.jp

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


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