svn_status
(PECL svn >= 0.1.0)
svn_status — Returns the status of working copy files and directories
説明
Returns the status of working copy files and directories, giving modifications, additions, deletions and other changes to items in the working copy.
パラメータ
path
-
Local path to file or directory to retrieve status of.
注意: 相対パスは、PHP バイナリが存在するディレクトリを基準として解決されます。呼び出しもとのスクリプトの作業ディレクトリを基準とするには、realpath() あるいは dirname(__FILE__) を使用してください。
flags
-
Any combination of
Svn::NON_RECURSIVE
,Svn::ALL
(regardless of modification status),Svn::SHOW_UPDATES
(entries will be added for items that are out-of-date),Svn::NO_IGNORE
(disregardsvn:ignore
properties when scanning for new files) andSvn::IGNORE_EXTERNALS
.
戻り値
Returns a numerically indexed array of associative arrays detailing the status of items in the repository:
Array ( [0] => Array ( // information on item ) [1] => ... )
The information on the item is an associative array that can contain the following keys:
- path
- String path to file/directory of this entry on local filesystem.
- text_status
- Status of item's text. とりうる値については 状態に関する定数 を参照ください。
- repos_text_status
-
Status of item's text in repository. Only accurate if
update
was set totrue
. とりうる値については 状態に関する定数 を参照ください。 - prop_status
- Status of item's properties. とりうる値については 状態に関する定数 を参照ください。
- repos_prop_status
-
Status of item's property in repository. Only accurate if
update
was set totrue
. とりうる値については 状態に関する定数 を参照ください。 - locked
-
Whether or not the item is locked. (Only set if
true
.) - copied
-
Whether or not the item was copied (scheduled for addition with
history). (Only set if
true
.) - switched
-
Whether or not the item was switched using the switch command.
(Only set if
true
)
These keys are only set if the item is versioned:
- name
- Base name of item in repository.
- url
- URL of item in repository.
- repos
- Base URL of repository.
- revision
- Integer revision of item in working copy.
- kind
- Type of item, i.e. file or directory. とりうる値については 型に関する定数 を参照ください。
- schedule
-
Scheduled action for item, i.e. addition or deletion. Constants
for these magic numbers are not available, they can
be emulated by using:
<?php
if (!defined('svn_wc_schedule_normal')) {
define('svn_wc_schedule_normal', 0); // nothing special
define('svn_wc_schedule_add', 1); // item will be added
define('svn_wc_schedule_delete', 2); // item will be deleted
define('svn_wc_schedule_replace', 3); // item will be added and deleted
}
?> - deleted
-
Whether or not the item was deleted, but parent revision lags
behind. (Only set if
true
.) - absent
-
Whether or not the item is absent, that is, Subversion knows that
there should be something there but there isn't. (Only set if
true
.) - incomplete
-
Whether or not the entries file for a directory is incomplete.
(Only set if
true
.) - cmt_date
-
Integer Unix timestamp of last commit date. (Unaffected by
update
.) - cmt_rev
-
Integer revision of last commit. (Unaffected by
update
.) - cmt_author
-
String author of last commit. (Unaffected by
update
.) - prop_time
- Integer Unix timestamp of last up-to-date time for properties
- text_time
- Integer Unix timestamp of last up-to-date time for text
例
例1 Basic example
This example demonstrates a basic, theoretical usage of this function.
<?php
print_r(svn_status(realpath('wc')));
?>
上の例の出力は、 たとえば以下のようになります。
Array ( [0] => Array ( [path] => /home/bob/wc/sandwich.txt [text_status] => 8 // item was modified [repos_text_status] => 1 // no information available, use update [prop_status] => 3 // no changes [repos_prop_status] => 1 // no information available, use update [name] => sandwich.txt [url] => http://www.example.com/svnroot/deli/trunk/sandwich.txt [repos] => http://www.example.com/svnroot/ [revision] => 123 [kind] => 1 // file [schedule] => 0 // no special actions scheduled [cmt_date] => 1165543135 [cmt_rev] => 120 [cmt_author] => Alice [prop_time] => 1180201728 [text_time] => 1180201729 ) )
注意
この関数は、 実験的 なものです。この関数の動作・ 名前・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP のリリースにおいて変更される可能性があります。 この関数は自己責任で使用してください。
参考
- svn_update() - Update working copy
- svn_log() - 指定したリポジトリ URL のコミットログメッセージを返す
- » SVN documentation for svn status
User Contributed Notes 1 note
There seems to be an undocumented function svn_info (arguably the proper name for this functionality) that does almost the same as svn_status, but ignores the second parameter.
Unfortunately, neither can directly be used to just retrieve the current revision of a working copy, but a combination of svn_status and SVN_NON_RECURSIVE|SVN_ALL will work; simply perform the following command:
<?php
svn_status(ROOT, SVN_NON_RECURSIVE|SVN_ALL);
?>
Where ROOT is of course the root of the working directory you wish to examine. One of the entries will be that working directory, including its current status.