svn_status
(PECL svn >= 0.1.0)
svn_status — 作業コピー内のファイルやディレクトリの状態を返す
説明
$path
[, int $flags = 0
] )作業コピー内のファイルやディレクトリの状態を返します。 作業コピー内での変更、追加、削除などの内容を取得できます。
パラメータ
-
path -
状態を取得したいファイルやディレクトリへのパス。
注意: 相対パスは、PHP バイナリが存在するディレクトリを基準として解決されます。呼び出しもとのスクリプトの作業ディレクトリを基準とするには、 realpath() あるいは dirname(__FILE__) を使用してください。
-
flags -
SVN_NON_RECURSIVE、SVN_ALL(変更状態にかかわらずすべて)、SVN_SHOW_UPDATES(最新ではなくなっている項目のエントリを追加)、SVN_NO_IGNORE(新しいファイルを検索する際に svn:ignore プロパティを無視する) およびSVN_IGNORE_EXTERNALSの任意の組み合わせ。
返り値
数値添字の配列を返します。配列の各要素は連想配列となり、 リポジトリ内のアイテムの状態の詳細を表します。
Array (
[0] => Array (
// アイテムの情報
)
[1] => ...
)
アイテムの情報を表す連想配列には、以下のようなキーが含まれます。
- path
- このエントリのファイル/ディレクトリの、ローカルファイルシステム上でのパスを表す文字列。
- text_status
- アイテムのテキストの状態。とりうる値については 状態に関する定数 を参照ください。
- repos_text_status
-
リポジトリ内でのアイテムのテキストの状態。正確な値となるのは、
updateがTRUEの場合のみです。 とりうる値については 状態に関する定数 を参照ください。 - prop_status
- アイテムのプロパティの状態。とりうる値については 状態に関する定数 を参照ください。
- repos_prop_status
-
リポジトリ内でのアイテムのプロパティの状態。正確な値となるのは、
updateがTRUEの場合のみです。 とりうる値については 状態に関する定数 を参照ください。 - 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
)
)