php8.5
Home/ Manual/ svn / functions/ svn_status

svn_status

PHP function Edit on GitHub ✎

(PECL svn >= 0.1.0)

Returns the status of working copy files and directories

Description

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.

Parameters

path

Local path to file or directory to retrieve status of.

Relativepath

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.

Return Values

Returns a numerically indexed array of associative arrays detailing the status of items in the repository:

output
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. Status

repos_text_status

Status of item's text in repository. Only accurate if update was set to true. Status

prop_status

Status of item's properties. Status

repos_prop_status

Status of item's property in repository. Only accurate if update was set to true. Status

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

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
<?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

Examples

Basic example

This example demonstrates a basic, theoretical usage of this function.

php
<?php
print_r(svn_status(realpath('wc')));
?>

The above example will output something similar to:

output
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

Source: reference/svn/functions/svn-status.xml · from the official PHP manual (php/doc-en)