svn_revert
svn_update
SVN 関数
PHP Manual

# svn_status

(PECL svn >= 0.1.0)

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

### 説明

array svn_status ( string `$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
        )
    )

### 参考

- svn_update() - 作業コピーをアップデートする
- svn_log() - 指定したリポジトリ URL のコミットログメッセージを返す
- » SVN ドキュメントの svn status

svn_revert
svn_update
SVN 関数
PHP Manual