CakeFest 2024: The Official CakePHP Conference

Funciones SVN

Tabla de contenidos

  • svn_add — Programa la adición de un artículo en un directorio de trabajo
  • svn_auth_get_parameter — Recupera un parámetros de autenticación
  • svn_auth_set_parameter — Establece un parámetro de autenticación
  • svn_blame — Obtiene las acusaciones SVN de un archivo
  • svn_cat — Devuelve el contenido de un fichero en un repositorio
  • svn_checkout — Descarga una copia de trabajo desde el repositorio
  • svn_cleanup — Limpieza recursiva del directorio de trabajo, finalizando operaciones no completadas y eliminado bloqueos
  • svn_client_version — Devuelve la versión de las librerias del cliente SVN
  • svn_commit — Envía los cambios desde el directorio local de trabajo al repositorio
  • svn_delete — Elimina ítems de una copia de trabajo o repositorio
  • svn_diff — Compara dos rutas de acceso recursivamente
  • svn_export — Exporta el contenido de un directorio SVN
  • svn_fs_abort_txn — Cancelar una transacción, devuelve true si todo está bien, false de lo contrario
  • svn_fs_apply_text — Crea y devuelve una secuencia que se utilizará para reemplazar
  • svn_fs_begin_txn2 — Crear una nueva transacción
  • svn_fs_change_node_prop — Retorna verdadero si todo está ok, falso en caso contrario
  • svn_fs_check_path — Determina que tipo de elemento está apuntado por una ruta de acceso determinada, en un repositorio fsroot
  • svn_fs_contents_changed — Devuelve verdadero si el contenido es diferente, falso en caso contrario
  • svn_fs_copy — Copia un fichero o un directorio, devuelve true en caso de éxito, de lo contrario devuelve false
  • svn_fs_delete — Elimina un fichero o directorio, devuelve true en caso de éxito, en caso contrario devuele false
  • svn_fs_dir_entries — Enumera los directorios que hay bajo una ruta de acceso determinada; devuelve un array con los nombres de los directorios
  • svn_fs_file_contents — Devuelve un flujo de acceso al contenido de un fichero para una versión del sistema de ficheros dada
  • svn_fs_file_length — Devuelve la longitud de un fichero para una versión dada de sistema de ficheros
  • svn_fs_is_dir — Devuelve true si la ruta apunta a un directorio, false en caso contrario
  • svn_fs_is_file — Devuelve true si la ruta apunta a un fichero, falso en caso contrario
  • svn_fs_make_dir — Crea un nuevo directorio vacío, devuelve true en caso de éxito, en caso contrario devuelve false
  • svn_fs_make_file — Crea un nuevo fichero vacío, devuelve true en caso de éxito, false en caso contrario
  • svn_fs_node_created_rev — Devuelve la revisión en la que la ruta de acceso bajo fsroot fue creado
  • svn_fs_node_prop — Devuelve el valor de una propiedad de un nodo
  • svn_fs_props_changed — Devuelve verdadero si las propiedades son diferentes, falso en caso contrario
  • svn_fs_revision_prop — Recupera el valor de una propiedad con determinado nombre
  • svn_fs_revision_root — Obtiene un gestor en una versión específica del repositorio 'root'
  • svn_fs_txn_root — Crea y retorna una transacción 'root'
  • svn_fs_youngest_rev — Devuelve el número de la revisión más reciente del sistema de ficheros
  • svn_import — Importa una ruta de acceso sin versión, dentro de un repositorio
  • svn_log — Devuelve el log histórico de mensajes de un repositorio URL
  • svn_ls — Devuelve una lista del contenido del directorio en el repositorio URL, opcionalmente el número de revisión
  • svn_mkdir — Crea un directorio en la copia de trabajo actual o repositorio
  • svn_repos_create — Crea un nuevo repositorio de subversión
  • svn_repos_fs_begin_txn_for_commit — Crea una nueva transacción
  • svn_repos_fs_commit_txn — Consolida una transacción y devuelve la nueva revisión
  • svn_repos_fs — Obtiene un gestor del sistema de ficheros para un repositorio
  • svn_repos_hotcopy — Realiza una copia en caliente del repositorio en pathrepospath; y lo copia en destpath
  • svn_repos_open — Abre una cerradura compartida en un repositorio
  • svn_repos_recover — Ejecuta los procesos de recuperación en el repositorio localizado en un path determinado
  • svn_revert — Deshace los cambios en la copia de trabajo
  • svn_status — Devuelve el estado de la copia de trabajo de los ficheros y directorios
  • svn_update — Actualiza la copia de trabajo
add a note

User Contributed Notes 6 notes

up
2
bohwaz
11 years ago
This extension also gives you access to an object API that is currently not documented anywhere. It uses the Svn, SvnWc, SvnWcSchedule and SvnNode classes. So you can't redeclare those names.

Here are some basics on how to use it:

<?php
$svn
= new Svn;
$log = $svn->log('https://svn.example/trunk/', Svn::HEAD);
?>

Basically you can use all functions documented here by replacing the svn_ prefix with $svn-> object. Same for constants, most can be used directly from the objects.

If you're interested, make sure to check the extension source code to find out more.
up
1
j dot saterfiel at gmail dot com
11 years ago
The PHP SVN library functions as of 1.02 that are not listed in this documentation and their signatures

array svn_info(string path [, bool recurse = true [, int revision = -1]])

resource svn_copy(string log, string src_path, string destination_path [, bool working_copy = true [, int revision = -1]])

mixed svn_move(string src_path, string dst_path [, bool force = false])

mixed svn_proplist(string path [, bool recurse = false, [int revision]])

mixed svn_propget(string path, string property_name [, bool recurse = false [, int revision]])

bool svn_lock(string comment, mixed targets [, bool steal_lock = false])

bool svn_unlock(mixed targets [, bool break_lock= false])

resource svn_switch(string path, string url [, bool working_copy = true])

You can also use the new Svn() object for these $svn->lock()

In general any function should work just like the svn command line version. For instance svn_info can be used against a remote url or a local path and svn_copy can also be used for local or remote operations.
up
1
pierre dot beaumadier at rhapso dot fr
16 years ago
[Editorial note: These constants are defined by the Subversion library itself and may change without notice (although things tend to be quite stable).]

For information, here are the numeric values I got for the constants :

Working copy status constants :
* svn_wc_status_none => 1
* svn_wc_status_unversioned => 2
* svn_wc_status_normal => 3
* svn_wc_status_added => 4
* svn_wc_status_missing => 5
* svn_wc_status_deleted => 6
* svn_wc_status_replaced => 7
* svn_wc_status_modified => 8
* svn_wc_status_merged => 9
* svn_wc_status_conflicted => 10
* svn_wc_status_ignored => 11
* svn_wc_status_obstructed => 12
* svn_wc_status_external => 13
* svn_wc_status_incomplete => 14

Node type constants :
* svn_node_none => 0
* svn_node_file => 1
* svn_node_dir => 2
* svn_node_unknown => 3
up
0
chris dot lawrence at ljg dot com
13 years ago
I also submitted this as a bug (since its about missing documentation).

This documentation does not mention the "svn_delete" command, but it was added in version 0.4. You can check the release notes here:
http://pecl.php.net/package/svn/0.4

Also, you could look at the contents of the current source code (svn-0.5.1/svn.c).

But what you really need to know is that the svn_delete command works correctly with this prototype:
svn_delete(string path [, bool force = true])

It returns true on success and false on failure.
up
0
Pieter van Ginkel
16 years ago
The Subversion functions work quite well for me, after some searching. I needed some time though to find out how they all worked together, but this is a basic example of svn_fs_is_file:

<?php

# Get a handle to the on-disk repository. Note that this
# is NOT a checked out project, but the actual svn repository!

$repos_handle = svn_repos_open('/var/lib/svn');
$fs_handle = svn_repos_fs($repos_handle);

# Now we need to open a revision because that's what the
# svn_fs_* methods need. You'll probably want the latest
# revision and we have a helper method for that.

$youngest_rev = svn_fs_youngest_rev($fs_handle);
$fs_rev_handle = svn_fs_revision_root($fs_handle, $youngest_rev);

# Now we can actually start doing stuff, for example the
# svn_fs_is_file call:

print_r(svn_fs_is_file($fs_rev_handle, '/a-file.txt'));

?>

There is one important thing to note about this all. You cannot let the handles expire while doing any calls to svn_fs_*. When implementing a helper class, I cached the first and third handle, but not the second one. PHP crashes hard when you do this. Keep references to all handles you get while you're calling the svn_fs_* methods.
up
0
tbrendstrup
16 years ago
"[Editorial note: These constants are defined by the Subversion library itself and may change without notice (although things tend to be quite stable).]"

The subversion developers have a policy not to change stuff like this without changing the major version number, so these should be valid at least until subversion 2.0.0 is released. (more values might be added, but the existing ones won't change).
To Top