Php/docs/function.svn-status
svn_status
(PECL svn >= 0.1.0)
svn_status — Returns the status of working copy files and directories
说明
svn_status
( string $path
[, int $flags
= 0
] ) : array
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.
Note: 相对路径将会以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:
<?phpif (!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
注释
Warning 此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担。
范例
Example #1 Basic example
This example demonstrates a basic, theoretical usage of this function.
<?phpprint_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 ) )
参见
- svn_update() - Update working copy
- svn_log() - Returns the commit log messages of a repository URL
- » SVN documentation for svn status