svn_status
(PECL svn:0.1-0.2)
svn_status — Returns the status of working copy files and directories
说明
array svn_status
( string $path
[, bool $recursive
[, bool $get_all
[, bool $update
[, bool $no_ignore
]]]] )
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: Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath() or dirname(__FILE__).
-
recursive
-
Whether or not to recursively descend into directories to
retrieve status. Default is TRUE.
-
get_all
-
Whether or not to return all items, regardless of modification
status. Default is FALSE.
-
update
-
Whether or not to return information from the server on
whether or not the working copy is up-to-date (specifically,
entries will be added for items that are out-of-date along with
the regular modification checks). Default is FALSE.
-
no_ignore
-
Whether or not to disregard svn:ignore properties when scanning
for new files. Default is FALSE.
返回值
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. Refer to status constants for possible values.
-
repos_text_status
-
Status of item's text in repository. Only accurate if
update
was set to TRUE.
Refer to status constants for possible values.
-
prop_status
-
Status of item's properties. Refer to status constants for possible values.
-
repos_prop_status
-
Status of item's property in repository. Only accurate if
update
was set to TRUE. Refer to status constants for possible values.
-
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. Refer to type constants for possible values.
-
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
注释
Warning本函数是实验性的。本函数的行为,包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随
PHP 以后的发布而改变。使用本函数风险自担。
范例
Example#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
)
)