(PECL svn >= 0.1.0)
svn_status — Возвращает SVN-статус файлов и директорий рабочей копии
Возвращает 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] => ...
)
Информация об элементе может быть получена из ассоциативного массива по двум ключам:
Путь к файлу/директории в локальной файловой системе.
Код текстового статуса элемента. Смотрите Для информации о возможных значениях, обратитесь к константам статусов.
Код текстового статуса элемента в репозитории. Отображается
если update установлен в true.
Смотрите Для информации о возможных значениях, обратитесь
к константам статусов.
Код текстового статуса свойств элемента. Смотрите Для информации о возможных значениях, обратитесь к константам статусов.
Код текстового статуса свойств элемента в репозитории. Отображается
если update установлен в true. Смотрите Для информации о возможных значениях, обратитесь
к константам статусов.
Будет ли заблокирован элемент или нет. (Устанавливается при true.)
Будет ли скопирован элемент (запланирован для добавления в истории
правок). (Устанавливается при true.)
Будет ли элемент переключён используя команду переключения.
(Устанавливается при true)
Следующие ниже ключи устанавливаются только если элемент имеет версию:
Имя элемента в репозитории.
URL-адрес элемента в репозитории.
URL-адрес репозитория.
Номер ревизии рабочей копии.
Тип элемента, т.е. файл или директория. Смотрите Для информации о возможных значениях, обратитесь к константам типов.
Запланированное действия для элемента, т.е. добавление или удаления. Константы для данных магических чисел не доступны, они эмулируются, согласно правилу:
<?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); // элемент будет удалён и добавлен
}
?>
Будет или нет элемент будет удалён, но ревизия родителя не увеличится
(Установлено при true.)
Будет или нет элемент помечен отсутствующим. Subversion будет помнить, что
в этом месте что-то расположено, но не будет знать что именно.
(Устанавливается при true.)
Будет или нет содержимое директории считаться неполным.
(Устанавливается при true.)
Отметка времени в формате Unix о дате последней правки (Не зависит от update.)
Номер ревизии последнего обновления. (Не зависит от update.)
Имя автора последней правки. (Не зависит от update.)
Отметка времени в формате Unix о последней актуальной версии свойств.
Отметка времени в формате Unix о последней актуальной версии текста.
Пример #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
)
)
Это ЭКСПЕРИМЕНТАЛЬНАЯ функция. Поведение, название и документацию к функции в новых версиях PHP изменяют без уведомления. За включение функции в код отвечает программист.