Documentación offline PHP master

svn_diff

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

En esta página

svn_diff

Comparar dos rutas de forma recursiva

Descripción#

svn_diff(string $path1, int $rev1, string $path2, int $rev2): array
```php

Compara dos rutas, `path1` y `path2`, de forma recursiva.

> [!NOTE]
> No es una utilidad de comparación real. Solo los ficheros locales que están versionados pueden ser comparados: otros ficheros fallarán.

## Parámetros

`path1`  
Primera ruta. Puede ser una URL hacia un fichero/directorio de un repositorio SVN o una ruta hacia un fichero/directorio local.

> [!NOTE]
> Los caminos relativos pueden ser resueltos si el directorio de trabajo actual es uno de los que contienen el binario PHP. Para utilizar el directorio de trabajo, utilice la función `realpath`, o la instrucción dirname(\_\_FILE\_\_).

> [!WARNING]
> Si una ruta hacia un fichero local solo tiene barras invertidas y ninguna barra, esta extensión fallará. Reemplace siempre todas las barras invertidas con barras al utilizar esta función.

`rev1`  
Número de revisión de la primera ruta. Utilice la constante `SVN_REVISON_HEAD` para especificar la revisión más reciente.

`path2`  
Segunda ruta a comparar. Ver el argumento `path1` para la descripción.

`rev2`  
Número de revisión de la segunda ruta. Ver el argumento `rev1` para la descripción.

## Valores devueltos

Devuelve un array que contiene 2 flujos: el primero representa la salida de la comparación, y el segundo contiene los errores. Los flujos pueden ser leídos utilizando la función `fread`. Devuelve `false` o `null` si ocurre un error.

La salida del comparador puede, por omisión, estar en formato de comparación unificado Subversion, pero un [motor externo de comparación](http://svnbook.red-bean.com/en/1.2/svn.advanced.externaldifftools.html) puede ser utilizado, según la configuración SVN.

## Ejemplos

Ejemplo de uso

Este ejemplo muestra un uso básico de esta función y recupera el contenido desde los flujos:
El ejemplo anterior mostrará:

    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

Comparación de dos revisiones de una ruta del repositorio

Este ejemplo implementa un gestor que permite a un usuario comparar fácilmente dos revisiones de un elemento utilizando una ruta de repositorio externa (la sintaxis por omisión es verbosa):
Comparación, más portable, de dos ficheros locales

Este ejemplo implementa un gestor para comparar dos ficheros locales, de forma más portable gestionando el problema de `realpath` y el error con las barras invertidas:

```php

Notas#

[!WARNING] Esta función es EXPERIMENTAL. El comportamiento de esta función, su nombre, y toda la documentación alrededor de esta función puede cambiar sin previo aviso en una próxima versión de PHP. Esta función debe ser utilizada bajo su propio riesgo.

Véase también#

Documentación SVN sobre la orden

"svn diff"