svn_status
(PECL svn >= 0.1.0)
svn_status — Devuelve el estado de la copia de trabajo de los ficheros y directorios
Descripción
$path
[, int $flags = 0
] )Devuelve el estado de la copia de trabajo de los ficheros y directorios, dando las modificaciones, adiciones, borrados y otros cambios a los elementos de la copia de trabajo.
Parámetros
-
path -
Path local al fichero o directorio del que se obtendrá el estado.
Nota: Las rutas relativas se resolverán como si el directorio de trabajo actual es el que contiene el binario de PHP. Para utilizar el directorio de trabajo que contiene el script a llamar, use realpath() o dirname(__FILE__).
-
flags -
Cualquier combinación de
SVN_NON_RECURSIVE,SVN_ALL(independientemente del estado de modificación),SVN_SHOW_UPDATES(se añadirán entradas para los elementos que estan desactualizados),SVN_NO_IGNORE(ignorar svn:ignore las propiedades cuando se busquen nuevos ficheros) ySVN_IGNORE_EXTERNALS.
Valores devueltos
Devuelve un array de arrays asociativos indexado numéricamente, detallando el estado de los elementos del repositorio:
Array (
[0] => Array (
// información del elemento
)
[1] => ...
)
La información del elemento es un array asociativo que puede contener las siguientes claves:
- path
- String con el path al fichero/directorio de esta entrada en el sistema de ficheros local.
- text_status
- Estado del texto del elemento. Referirse a constantes de estado para posibles valores.
- repos_text_status
-
Estado del texto del elemento en el repositorio. Sólo es exacto si
updatese definió aTRUE. Referirse a constantes de estado para posibles valores. - prop_status
- Estado de las propiedades del elemento. Referirse a constantes de estado para posibles valores.
- repos_prop_status
-
Estado de la propiedad del elemento en el repositorio. Sólo exacto si
updatese definió aTRUE. Referirse a constantes de estado para posibles valores. - locked
-
Si el elemento está bloqueado o no. (Sólo definido si
TRUE.) - copied
-
Si el elemento fue copiado o no (planificado para adición con
histórico). (Sólo definido si
TRUE.) - switched
-
Si el elemento fue intercambiado con el comando switch.
(Sólo definido si
TRUE)
Estas claves sólo estan definidas si el elemento está versionado:
- name
- Nombre de base del elemento en el repositorio.
- url
- URL del elemento en el repositorio.
- repos
- URL base del repositorio.
- revision
- Entero con la revisión del elemento en la copia de trabajo.
- kind
- Tipo de elemento, p.e. fichero o directorio. Referirse a constantes de tipo para posibles valores.
- schedule
-
Acción planificada para el elemento, p.e. adición o eliminación. Las constantes
para estos números mágicos no estan disponibles, pueden ser
emuladas utilizando:
<?php
if (!defined('svn_wc_schedule_normal')) {
define('svn_wc_schedule_normal', 0); // nada especial
define('svn_wc_schedule_add', 1); // elemento será añadido
define('svn_wc_schedule_delete', 2); // elemento será eliminado
define('svn_wc_schedule_replace', 3); // elemento será reemplazado
}
?> - deleted
-
Si el elemento fue eliminado o no, pero las revisiones previas existen
todavía. (Sólo definido si
TRUE.) - absent
-
Si el elemento está ausente o no, es decir, Subversion sabe que
debería haber algo pero no está. (Sólo definido si
TRUE.) - incomplete
-
Si las entradas del fichero o directorio están incompletas o no.
(Sólo definido si
TRUE.) - cmt_date
-
Entero con el timestamp de Unix con la última fecha de commit. (No afectado por el parámetro
update.) - cmt_rev
-
Entero con la revisión del último commit. (No afectado por el parámetro
update.) - cmt_author
-
String con el autor del último commit. (No afectado por el parámetro
update.) - prop_time
- Entero con el timestamp de Unix con el último tiempo de actualización de las propiedades
- text_time
- Entero con el timestamp de Unix del último tiempo de actualización para el texto
Notas
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 Ejemplo básico
Este ejemplo muestra un uso básico, teórico de esta función.
<?php
print_r(svn_status(realpath('wc')));
?>
El resultado del ejemplo sería algo similar a:
Array (
[0] => Array (
[path] => /home/bob/wc/sandwich.txt
[text_status] => 8 // elemento que fue modificado
[repos_text_status] => 1 // sin información disponible, usar update
[prop_status] => 3 // sin cambios
[repos_prop_status] => 1 // sin información disponible, usar update
[name] => sandwich.txt
[url] => http://www.example.com/svnroot/deli/trunk/sandwich.txt
[repos] => http://www.example.com/svnroot/
[revision] => 123
[kind] => 1 // fichero
[schedule] => 0 // sin acciones especiales planificadas
[cmt_date] => 1165543135
[cmt_rev] => 120
[cmt_author] => Alice
[prop_time] => 1180201728
[text_time] => 1180201729
)
)
Ver también
- svn_update() - Actualiza la copia de trabajo
- svn_log() - Devuelve el log histórico de mensajes de un repositorio URL
- » Documentación SVN para svn status