svn_status
(PECL svn >= 0.1.0)
svn_status — Возвращает SVN-статус файлов и директорий рабочей копии
Описание
$path
, int $flags
= 0
) : arrayВозвращает 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
-
Запланированное действия для элемента, т.е. добавление или удаления.
Константы для данных магических чисел не доступны, они эмулируются,
согласно правилу:
<?php
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 Простой пример
Приведенный ниже пример иллюстрирует базовое, теоретическое использование данной функции
<?php
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 ) )
Смотрите также
- svn_update() - Обновляет рабочую копию
- svn_log() - Возвращает комментарии к правкам в репозитории
- » SVN-документация по svn status