svn_diff
(PECL svn >= 0.1.0)
svn_diff - Рекурсивно показує відмінності двох файлів
Опис
svn_diff( string $path1, int $rev1, string $path2, int $rev2): array
Рекурсивно показує різницю двох файлів path1
иpath2
Зауваження :
Це не інструмент для перегляду загальних змін. Можуть бути розглянуті відмінності лише локальних файлів, які знаходяться в системі контролю версій SVN: для інших файлів відмінності переглянути не вдасться.
Список параметрів
path1
Перший шлях. Це може бути URL файлу/директорії у репозиторії SVN або шлях до локального файлу/директорії.
Зауваження: Відносні шляхи будуть обчислені, якби поточна робоча директорія була домашньою папкою самого PHP Щоб використовувати робочу директорію скрипта, що викликає, використовуйте realpath()или dirname(__FILE__
Увага
Якщо шлях до локального файлу складається тільки із зворотних слішів (\), без слєша (/), даному модулю не вдасться знайти необхідні файли. Завжди замінюйте всі зворотні сліші (\) на слєші (/), використовуючи цю функцію.
rev1
Номер ревизии первого файла. Используйте константу**SVN_REVISION_HEAD
**для задания самой последней ревизии.
path2
Другий шлях до файлу, аналогічно path1
rev2
Номер ревізії другого файлу, аналогічно rev1
Значення, що повертаються
Повертає список масивів, що складається з двох потоків: перша - відмінності файлів; друга – помилки. Потоки можуть бути прочитані функцією fread(). При помилці повертає false
або null
За промовчанням висновок відмінностей буде в стандартному форматі Subversion, але також може використовуватися » зовнішнім інструментом показу відмінностей, залежно від налаштування Subversion.
Приклади
Приклад #1 Простий приклад
Приклад нижче ілюструє просте використання цієї функції та отримання даних із потоку.
Loading...
Результат виконання наведеного прикладу:
Index: http://www.example.com/svnroot/trunk/foo
===================================================================
--- http://www.example.com/svnroot/trunk/foo (.../foo) (revision 23)
+++ http://www.example.com/svnroot/branches/dev/foo (.../foo) (revision 27)
// остальный вывод diff
Приклад #2 Висновок різниці між двома ревізіями одного файлу
Цей приклад показує як реалізувати функцію-обертку, яка дозволяє користувачеві переглядати різницю між двома ревізіями одного файлу, використовуючи зовнішній шлях репозиторію (стандартний синтаксис такої реалізації дещо надлишковий):
Loading...
Приклад #3 Більш зручний спосіб виведення відмінностей між двома файлами
Цей приклад показує як реалізувати функцію-обертку для виведення відмінностей між двома локальними файлами, яка є переносимою та позбавлена помилок під час роботи з функцією realpath() і зворотним слішем.
Loading...
Примітки
Увага
Ця функція є ЕКСПЕРИМЕНТАЛЬНОЇ. Поведінка цієї функції, її ім'я та документація, що до неї належить, можуть змінитися в наступних версіях PHP без повідомлення. Використовуйте цю функцію на свій страх та ризик.