svn_diff
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
svn_diff
Референца за `function.svn-diff.php` со подобрена типографија и навигација.
svn_diff
(PECL svn >= 0.1.0)
svn_diff — Рекурзивно споредува две патеки
= NULL
Рекурзивно споредува две патеки, path1 and
path2.
Забелешка: Ова не е општа алатка за споредба. Може да се споредуваат само локални датотеки кои се верзионирани: другите датотеки ќе пропаднат.
Параметри
path1-
Прва патека за споредба. Ова може да биде URL до датотека/директориум во SVN репозиториум или локална патека до датотека/директориум.
Забелешка: Патека до локалната работна копија. realpath() Релативните патеки ќе бидат решени како да е моменталната работна директорија онаа што ја содржи PHP бинарниот фајл. За да ја користите работната директорија на повикувачкиот скрипт, користете
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјаваАко локалната патека на датотеката има само обратни коси црти и ниту една напред коси црта, оваа екстензија нема да може да ја пронајде патеката. Секогаш заменете ги сите обратни коси црти со напред коси црти кога ја користите оваа функција.
rev1-
Број на ревизија на првата патека. Користете
SVN_REVISION_HEADза да ја специфицирате најновата ревизија. path2-
Втора патека за споредба. Погледнете
path1за опис. rev2-
Број на ревизија на втората патека. Погледнете
rev1за опис.
Вратени вредности
Враќа список од две стриминг: првиот е излезот од споредбата, а вториот содржи излез од стриминг за грешки. Стримингот може да се чита со помош на fread(). Враќа false or null при грешка.
Излезот од споредбата, по дифолт, ќе биде во форма на прилагодениот унифициран формат на Subversion, но надворешен механизам за споредба може да се користи во зависност од конфигурацијата на Subversion.
Примери
Пример #1 Основен пример
Овој пример демонстрира основна употреба на оваа функција и добивање содржина од стримингот:
<?php
list($diff, $errors) = svn_diff(
'http://www.example.com/svnroot/trunk/foo', SVN_REVISION_HEAD,
'http://www.example.com/svnroot/branches/dev/foo', SVN_REVISION_HEAD
);
if (!$diff) exit;
$contents = '';
while (!feof($diff)) {
$contents .= fread($diff, 8192);
}
fclose($diff);
fclose($errors);
var_dump($contents);
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
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) // further diff output
Пример #2 Споредба на две ревизии на патека на репозиториум
Овој пример имплементира обвивна функција која му овозможува на корисникот лесно да споредува две ревизии на иста ставка користејќи надворешна патека на репозиториум (стандардниот синтакс е малку обемна):
<?php
function svn_diff_same_item($path, $rev1, $rev2) {
return svn_diff($path, $rev1, $path, $rev2);
}
?>Пример #3 Преносливо споредување на две локални датотеки
Овој пример имплементира обвивна функција која преносливо споредува две локални датотеки, компензирајќи за realpath() поправка и бубачката со коси црти:
<?php
function svn_diff_local($path1, $rev1, $path2, $rev2) {
$path1 = str_replace('\\', '/', realpath($path1));
$path2 = str_replace('\\', '/', realpath($path2));
return svn_diff($path1, $rev1, $path2, $rev2);
}
?>Белешки
Оваа функција е ЕКСПЕРИМЕНТАЛНАОднесувањето на оваа функција, нејзиното име и околната документација може да се променат без претходна најава во идно издание на PHP. Оваа функција треба да се користи на ваш сопствен ризик.