PHP Australia Conference 2015

svn_log

(PECL svn >= 0.1.0)

svn_logDevuelve el log histórico de mensajes de un repositorio URL

Descripción

array svn_log ( string $repos_url [, int $start_revision [, int $end_revision [, int $limit = 0 [, int $flags = SVN_DISCOVER_CHANGED_PATHS | SVN_STOP_ON_COPY ]]]] )

svn_log() devuelve el histórico completo de un elemento del repositorio URL repos_url, o el histórico de una revisión específica si start_revision se ha especificado. Esta función es equivalente a svn log --verbose -r $start_revision $repos_url.

Parámetros

repos_url

Repositorio URL del elemento del que se obtendrá el log histórico.

start_revision

Número de revisión del primer log a obtener. Usar SVN_REVISION_HEAD para obtener el log de la revisión más reciente.

end_revision

Número de revisión del último log a obtener. Por defecto es start_revision si se especifica, o SVN_REVISION_INITIAL en caso contrario.

limit

Número de logs a obtener.

flags

Cualquier combinación de SVN_OMIT_MESSAGES, SVN_DISCOVER_CHANGED_PATHS y SVN_STOP_ON_COPY.

Valores devueltos

En caso de éxito, esta función devuelve un array con el siguiente formato :

[0] => Array, ordenado mostrando la revisión más reciente (la mayor) primero
(
    [rev] => integer número de revisión
    [author] => string nombre del autor
    [msg] => string log del mensaje
    [date] => string fecha formateada por ISO 8601, p.e. date('c')
    [paths] => Array, descripción de los ficheros cambiados
        (
            [0] => Array
                (
                    [action] => string letra que indica el cambio
                    [path] =>  path absoluto del repositorio de un fichero cambiado
                )
            [1] => ...
        )
)
[1] => ...

Nota:

La salida siempre será un array de arrays indexado numéricamente, incluso cuando no haya ninguno o sólo un log de mensaje(s).

El valor de action es un subconjunto de »  con el estado de salida en la primer columna, donde los valores posibles son:

Actions
Letter Description
M Elemento/propiedad fue modificada
A Elemento fue añadido
D Elemento fue borrado
R Elemento fue reemplazado

Si no se hizo ningún cambio al elemento, se devolverá un array vacío.

Notas

Advertencia

Esta función ha sido declarada EXPERIMENTAL. Su comportamiento, su nombre y la documentación que le acompaña puede cambiar sin previo aviso en futuras versiones de PHP. Use esta función bajo su propio riesgo.

Ejemplos

Ejemplo #1 svn_log() example

<?php
print_r
svn_log('http://www.example.com/'23) );
?>

El resultado del ejemplo sería algo similar a:

Array
(
    [0] => Array
    (
        [rev] => 23
        [author] => 'joe'
        [msg] => 'Add cheese and salami to our sandwich.'
        [date] => '2007-04-06T16:00:27-04:00'
        [paths] => Array
            (
                [0] => Array
                    (
                        [action] => 'M'
                        [path] =>  '/sandwich.txt'
                    )
            )
    )
)

add a note add a note

User Contributed Notes 1 note

up
0
php dot net at gnur dot nl
3 years ago
Please not that using svn_log without giving revisions is much, much slower then with revisions. Examples:

$ time php -r "svn_log('http://localhost/svn/shopadsl');"

real    0m2.140s
user    0m0.140s
sys     0m0.000s

VS

$ time php -r "svn_log('http://localhost/svn/shopadsl', 0, 45);"

real    0m0.063s
user    0m0.024s
sys     0m0.016s
To Top