svn_status

(PECL svn >= 0.1.0)

svn_statusReturns 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.

參數(shù)

path

Local path to file or directory to retrieve status of.

注意: 相對路徑將會以PHP執(zhí)行文件所在目錄作為當(dāng)前工作目錄進(jìn)行解析。如果希望依據(jù)腳本所在目錄解析, 使用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 (disregard svn:ignore properties when scanning for new files) and Svn::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. 參見 狀態(tài)常量列表 獲得可能的值.
repos_text_status
Status of item's text in repository. Only accurate if update was set to true. 參見 狀態(tài)常量列表 獲得可能的值.
prop_status
Status of item's properties. 參見 狀態(tài)常量列表 獲得可能的值.
repos_prop_status
Status of item's property in repository. Only accurate if update was set to true. 參見 狀態(tài)常量列表 獲得可能的值.
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
    )
)

注釋

警告

此函數(shù)是實驗性的。此函數(shù)的表象,包括名稱及其相關(guān)文檔都可能在未來的 PHP 發(fā)布版本中未通知就被修改。使用本函數(shù)風(fēng)險自擔(dān)。

參見