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 без повідомлення. Використовуйте цю функцію на свій страх та ризик.

Дивіться також