svn_status
(PECL svn >= 0.1.0)
Returns the status of working copy files and directories
Description
Returns the status of working copy files and directories, giving modifications, additions, deletions and other changes to items in the working copy.
Parameters
pathLocal path to file or directory to retrieve status of.
Relativepath
flagsAny 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:ignoreproperties when scanning for new files) andSvn::IGNORE_EXTERNALS.
Return Values
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:
pathString path to file/directory of this entry on local filesystem.
text_statusStatus of item's text. Status
repos_text_statusStatus of item's text in repository. Only accurate if
updatewas set to true. Statusprop_statusStatus of item's properties. Status
repos_prop_statusStatus of item's property in repository. Only accurate if
updatewas set to true. StatuslockedWhether or not the item is locked. (Only set if true.)
copiedWhether or not the item was copied (scheduled for addition with history). (Only set if true.)
switchedWhether or not the item was switched using the switch command. (Only set if true)
These keys are only set if the item is versioned:
nameBase name of item in repository.
urlURL of item in repository.
reposBase URL of repository.
revisionInteger revision of item in working copy.
kindType of item, i.e. file or directory. Type
scheduleScheduled action for item, i.e. addition or deletion. Constants for these magic numbers are not available, they can be emulated by using:
php<?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 } ?>deletedWhether or not the item was deleted, but parent revision lags behind. (Only set if true.)
absentWhether or not the item is absent, that is, Subversion knows that there should be something there but there isn't. (Only set if true.)
incompleteWhether or not the entries file for a directory is incomplete. (Only set if true.)
cmt_dateInteger Unix timestamp of last commit date. (Unaffected by
update.)cmt_revInteger revision of last commit. (Unaffected by
update.)cmt_authorString author of last commit. (Unaffected by
update.)prop_timeInteger Unix timestamp of last up-to-date time for properties
text_timeInteger Unix timestamp of last up-to-date time for text
Examples
Basic example
This example demonstrates a basic, theoretical usage of this function.
<?php
print_r(svn_status(realpath('wc')));
?>The above example will output something similar to:
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
)
)Notes Func
See Also
svn_update()svn_log()- SVN documentation for svn status