svn_status

(PECL svn >= 0.1.0)

svn_status — Возвращает SVN статус файлов и директорий рабочей копии


Описание

array svn_status ( string $path [, int $flags = 0 ] )

Возвращает SVN статус файлов и директорий рабочей копии, подвергнувшихся модификации, добавлению, удалению и прочим изменениям.


Список параметров

path -

Локальный путь к файлу или директории для получения статуса.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

flags -

Любая комбинация флагов SVN_NON_RECURSIVE, SVN_ALL (вне зависимости от статуса модификации), SVN_SHOW_UPDATES (к записям будут добавлены пункты со старыми правками), SVN_NO_IGNORE (игнорирование svn:ignore свойств при сканировании новых файлов) и SVN_IGNORE_EXTERNALS.


Возвращаемые значения

Возвращает пронумерованный массив, состоящий из ассоциативных массивов с подробными статусами элементов в репозитории:

Array ( [0] => Array ( // информация об элементе ) [1] => ... )

Информация об элементе может быть получена из ассоциативного массива по двум ключам:

path - Путь к файлу/директории в локальной файловой системе.

text_status - Код текстового статуса элемента. См. Для информации о возможных значениях, обратитесь к константам статусов.

repos_text_status - Код текстового статуса элемента в репозитории. Отображается если update установлен в TRUE. См. Для информации о возможных значениях, обратитесь к константам статусов.

prop_status - Код текстового статуса свойств элемента. См. Для информации о возможных значениях, обратитесь к константам статусов.

repos_prop_status - Код текстового статуса свойств элемента в репозитории. Отображается если update установлен в TRUE. См. Для информации о возможных значениях, обратитесь к константам статусов.

locked - Будет ли заблокирован элемент или нет. (Устанавливается при TRUE.)

copied - Будет ли скопирован эдемент (запланирован для добавления в истории правок). (Устанавливается при TRUE.)

switched - Будет ли элемент переключен используя команду переключения. (Устанавливается при TRUE)

Следующие ниже ключи устанавливаются только если элемент имеет версию:

name - Имя элемента в репозитории.

url - URL адрес элемента в репозитории.

repos - URL адрес репозитория.

revision - Номер ревизии рабочей копии.

kind - Тип элемента, т.е. файл или директория. См. Для информации о возможных значениях, обратитесь к константам типов.

schedule - Запланированное действия для элемента, т.е. добавление или удаления. Константы для данных магичских чисел не доступны, они эмулируются, согласно правилу:

if (!defined('svn_wc_schedule_normal')) {
    define('svn_wc_schedule_normal',  0); // никаких изменений
    define('svn_wc_schedule_add',     1); // элемент будет добавлен
    define('svn_wc_schedule_delete',  2); // элемент будет удален
    define('svn_wc_schedule_replace', 3); // элемент будет удален и добавлен
}

deleted - Будет или нет элемент будет удален, но ревизия родителя не увеличится (Установлено при TRUE.)

absent - Будет или нет элемент помечен отсутствующим. Subversion будет помнить, что в этом месте что-то расположено, но не будет знать что именно. (Устанавливается при TRUE.)

incomplete - Будет или нет содержимое директории считаться неполным. (Устанавливается при TRUE.)

cmt_date - Отметка времени в формате Unix о дате последней правки (Независит от update.)

cmt_rev - Номер ревизии последнего обноваления. (Независит от update.)

cmt_author - Имя автора последней правки. (Независит от update.)

prop_time - Отметка времени в формате Unix о последней актуальной версии свойств.

text_time - Отметка времени в формате Unix о последней актуальной версии текста.


Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Примеры

Пример #1 Простой пример

Приведенный ниже пример иллюстрирует базовое, теоретическое использование данной функции


print_r(svn_status(realpath('wc')));

Результатом выполнения данного примера будет что-то подобное:


Array (
[0] => Array (
[path] => /home/bob/wc/sandwich.txt
[text_status] => 8 // элемент был изменен
[repos_text_status] => 1 // нет доступной информации, выполнить update
[prop_status] => 3 // нет изменений
[repos_prop_status] => 1 // нет доступной информации, выполнить 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 // не запланировано никаких действий
[cmt_date] => 1165543135
[cmt_rev] => 120
[cmt_author] => Alice
[prop_time] => 1180201728
[text_time] => 1180201729
)
)


Смотрите также


Описание на ru2.php.net
Описание на php.ru