先月のことになりますが、写真・動画共有サービス「フォト蔵」が、デザインの大幅なリニューアルを行いました。フォト蔵も例外なく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
|