| ||||||||||||||||
| 1 2 3 次のページ | ||||||||||||||||
| PHP開発におけるSubversionを用いたバージョン管理 | ||||||||||||||||
今回は、Subversionによるバージョン管理方法とウノウでの導入事例について前編と後編にわけて紹介していきます。 | ||||||||||||||||
| Subversionとは | ||||||||||||||||
Subversionとは、無償で利用できるバージョン管理システムです。現在もオープンソースで活発に開発が進んでおり、執筆時点の最新バージョンは1.4.2となります。バージョン管理システムとは、ソースコードや仕様書などを含むドキュメントなど、時間とともに内容が変化するファイルを管理するシステムの総称です。 Subversionと同じようなバージョン管理システムとしては、CVS(Concurrent Version System)が有名ですが、SubversionではこのCVSで使いにくかった点を改良した次世代バージョン管理システムというコンセプトで開発が続けらています。筆者が実際にどちらも利用してみた結論として、導入をおすすめするバージョン管理システムは、やはり「Subversion」です。 SubversionではプログラムのソースコードやWebサイトイメージを含むコンテンツ、WordやExcelで書かれた仕様書など、どのようなファイルでも1つの場所にまとめて管理することができます。 この管理する場所のことをリポジトリと呼びます。リポジトリには、モジュールと呼ばれる単位で複数のプログラムを1つのリポジトリ上にまとめて管理することが可能です。またSubersionは、WindowsやLinux、Mac OS Xなど、ほとんどのオペレーティングシステム上に導入して利用することができます。 | ||||||||||||||||
| Subversionを導入する理由 | ||||||||||||||||
Subversionを導入する際には、サーバマシンにSubversionを導入するコストやその使い方を学ぶためのコストがかかることは想像できると思います。しかしSubversionを導入すると、その投資以上に様々な利点があるのです。 | ||||||||||||||||
| すべてのファイルを一元管理 | ||||||||||||||||
先ほど述べましたが、Subversionではリポジトリにまとめてファイルを管理しています。つまり1つのコンピュータの中にすべてのファイルを管理することができるのです。そのため複数のコンピュータで管理する場合と比べて、管理コストを最小限に抑えることができます。 1つのリポジトリには、複数のモジュールと呼ばれる単位で追加することができるため、例えば「プロダクトA」「プロダクトB」といったプロダクト単位で管理することができます。またリポジトリだけをバックアップしておけば、万が一ファイルが消えてしまった場合に備えておけるため安心です。リポジトリのバックアップ方法については、「Subversionの使い方」の項で説明します。 | ||||||||||||||||
| チームでの共同作業を省力化 | ||||||||||||||||
Subversionでは、リポジトリにネットワークを通してアクセスします。リポジトリにアクセスすると自動的にSubversionが自分の環境にリポジトリのコピーを作ります。開発者はリポジトリを直接変更するのではなく、リポジトリのコピーを変更するため、複数の人がそれぞれ同時に同じファイルを変更することができます。ファイルを変更し終えた後は、ファイルの変更内容をリポジトリに登録するだけです。 | ||||||||||||||||
| ファイルの変更内容を管理 | ||||||||||||||||
Subversionでは、ファイルの内容とあわせてファイルの変更内容(差分)も管理しています。この差分は、リポジトリにファイルの変更内容を登録するたびに作成されますので、例えばある時点でプログラムの動作に不備があった場合には、差分だけを参照することで原因の追及がしやすくなります。 この利点だけを考えても、チームで開発しているプロダクトだけではなく、1人で開発しているプロダクトもSubversionによって管理する意味は大きいでしょう。 これらの利点に加えて加えてSubversionの導入は、とても簡単に行えますので、導入コスト以上の効果を期待できるでしょう。 | ||||||||||||||||
| 1 2 3 次のページ | ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||

