VersionControl_SVN

VersionControl_SVN は、svn コマンドライン アプリケーションのシンプルなオブジェクト指向インターフェースです。 svn は、フリー/オープンソースのバージョン管理システムである Subversion の中核となるものです。

導入

Subversion は、ソースコードのツリー・テキストファイル・画像ファイル -- およそ考えうるあらゆる形式のファイルを 管理するために使用可能です。

VersionControl_SVN の機能には以下のようなものがあります。

VersionControl_SVN を通じてアクセスすることにより、Subversion のような バージョン管理システムは、ありきたりな"ソースコード" リポジトリをはるかにこえた威力を発揮します。

たとえば、バージョン管理機能の恩恵をうけないコンテンツ管理システム (CMS)がどこにあるというのでしょうか? プログラマでない多くの人々に とっても、バージョン管理は頭を悩ませる問題です。 VersionControl_SVN を使用することで、特定のユーザを念頭において 彼らが使いやすいように Subversion のインターフェースをカスタマイズ することが可能となるのです。VersionControl_SVN により、エンドユーザに 変更管理の概念を覚えさせるという負担を強いずに、強力なバージョン管理機能を 使用させることができます。

単純な例

まずどこかに Subversion リポジトリを作成してください。PHP スクリプトで どのように書けばよいのかを知りたいことでしょう。数行後に、 VersionControl_SVN::VersionControl_SVN_List() コマンドを使用する例を 示します。

上で使用したリポジトリにもし VersionControl_SVN のソースが 格納されていれば、この例の出力は以下のようになります。

Array
(
    [0] => Array
        (
            [name] => docs
            [type] => D
        )

    [1] => Array
        (
            [name] => package.xml
            [type] => F
        )

    [2] => Array
        (
            [name] => SVN.php
            [type] => F
        )

    [3] => Array
        (
            [name] => SVN
            [type] => D
        )

    [4] => Array
        (
            [name] => tests
            [type] => D
        )

)

上の出力例で、ディレクトリには D、ファイルには F というフラグが立っていることに注意しましょう。

ひとつのファクトリですべてを支配する

VersionControl_SVN のサブクラスを利用する必要のあるスクリプトは ありませんか? ほんの少しのオーバーヘッドという犠牲を払うことで、 $svn オブジェクトに全機能を読み込むことが できます。VersionControl_SVN::factory() コマンドを使用し、 キーワード __ALL__ を指定すればよいのです。

たとえば、リポジトリ内の現在のファイルの一覧を取得したいなら、 必要なのはサブクラス VersionControl_SVN::VersionControl_SVN_List() だけです。

しかし、もしリポジトリ内のファイル一覧を再帰的に取得し、 それらのファイルの更新ログを検索し、注記つきのソースを表示したいと なると、二通りの方法があります。

更なる情報

Subversion についてもっと知りたくなったなら、以下を参照ください。