SVN 関数
PHP Manual

svn_status

(PECL svn:0.1-0.2)

svn_status作業コピー内のファイルやディレクトリの状態を返す

説明

array svn_status ( string $path [, int $flags ] )

作業コピー内のファイルやディレクトリの状態を返します。 作業コピー内での変更、追加、削除などの内容を取得できます。

パラメータ

path

状態を取得したいファイルやディレクトリへのパス。

注意: 相対パスは、PHP バイナリが存在するディレクトリを基準として解決されます。呼び出しもとのスクリプトの作業ディレクトリを基準とするには、realpath() あるいは dirname(__FILE__) を使用してください。

flags

SVN_NON_RECURSIVESVN_ALL (変更状態にかかわらずすべて)、 SVN_SHOW_UPDATES (最新ではなくなっている項目のエントリを追加)、 SVN_NO_IGNORE (新しいファイルを検索する際に svn:ignore プロパティを無視する) および SVN_IGNORE_EXTERNALS の任意の組み合わせ。

返り値

数値添字の配列を返します。配列の各要素は連想配列となり、 リポジトリ内のアイテムの状態の詳細を表します。

Array (
    [0] => Array (
        // アイテムの情報
    )
    [1] => ...
)

アイテムの情報を表す連想配列には、以下のようなキーが含まれます。

path
このエントリのファイル/ディレクトリの、ローカルファイルシステム上でのパスを表す文字列。
text_status
アイテムのテキストの状態。とりうる値については 状態に関する定数 を参照ください。
repos_text_status
リポジトリ内でのアイテムのテキストの状態。正確な値となるのは、 updateTRUE の場合のみです。 とりうる値については 状態に関する定数 を参照ください。
prop_status
アイテムのプロパティの状態。とりうる値については 状態に関する定数 を参照ください。
repos_prop_status
リポジトリ内でのアイテムのプロパティの状態。正確な値となるのは、 updateTRUE の場合のみです。 とりうる値については 状態に関する定数 を参照ください。
locked
そのアイテムがロックされているかどうか (設定されるのは TRUE の場合のみです)。
copied
アイテムがコピーされている (追加予約されている) かどうか。 (設定されるのは TRUE の場合のみです)。
switched
switch コマンドによる変更がされているかどうか。 (設定されるのは TRUE の場合のみです)。

これらのキーは、バージョン管理されているアイテムについてのみ設定されます。

name
リポジトリ内でのアイテムのベース名。
url
リポジトリ内でのアイテムの URL。
repos
リポジトリのベース URL。
revision
作業コピーのリビジョン番号。
kind
アイテムの形式。file あるいは directory のいずれか。とりうる値については 型に関する定数 を参照ください。
schedule
そのアイテムに予定されているアクション (追加や削除など)。 これらのマジックナンバーに対応する定数は定義されていません。 定数を定義するには、次のようにします。
<?php
if (!defined('svn_wc_schedule_normal')) {
    
define('svn_wc_schedule_normal',  0); // 何も予定なし
    
define('svn_wc_schedule_add',     1); // 追加予定
    
define('svn_wc_schedule_delete',  2); // 削除予定
    
define('svn_wc_schedule_replace'3); // 追加・削除予定
}
?>
deleted
アイテムが削除されたが、親リビジョンのログがあるかどうか (設定されるのは TRUE の場合のみです)。
absent
アイテムが行方不明、 つまり Subversion 上では存在するはずなのに実際には存在しない という状態になっているかどうか (設定されるのは TRUE の場合のみです)。
incomplete
Whether or not the entries file for a directory is incomplete. (設定されるのは TRUE の場合のみです)。
cmt_date
最終更新日時を表す Unix タイムスタンプ (update の影響を受けません)。
cmt_rev
最終更新時のリビジョン (update の影響を受けません)。
cmt_author
最終更新者 (update の影響を受けません)。
prop_time
プロパティの最新日時を表す Unix タイムスタンプ。
text_time
テキストの最新日時を表す Unix タイムスタンプ。

注意

警告

この関数は、 実験的 なものです。この関数の動作・ 名前・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP のリリースにおいて変更される可能性があります。 この関数は自己責任で使用してください。

例1 基本的な使用例

これは、この関数の基本的な使用法を示すものです。

<?php
print_r
(svn_status(realpath('wc')));
?>

上の例の出力は、たとえば 以下のようになります。

Array (
    [0] => Array (
        [path] => /home/bob/wc/sandwich.txt
        [text_status] => 8 // アイテムが修正されました
        [repos_text_status] => 1 // 情報が存在しません。update を使用します
        [prop_status] => 3 // 変更されていません
        [repos_prop_status] => 1 // 情報が存在しません。update を使用します
        [name] => sandwich.txt
        [url] => http://www.example.com/svnroot/deli/trunk/sandwich.txt
        [repos] => http://www.example.com/svnroot/
        [revision] => 123
        [kind] => 1 // ファイル
        [schedule] => 0 // 特別なアクションは予定されていません
        [cmt_date] => 1165543135
        [cmt_rev] => 120
        [cmt_author] => Alice
        [prop_time] => 1180201728
        [text_time] => 1180201729
    )
)

参考


SVN 関数
PHP Manual