[WikiItic] [TitleIndex] [WordIndex

1. Comandos para sistemas de control de versiones (Subversión).

1.1. Descripción

Subversion es un sistema de control de versiones diseñado específicamente para reemplazar al popular CVS. Es software libre bajo una licencia de tipo Apache/BSD y se le conoce también como svn por ser el nombre de la herramienta utilizada en la línea de órdenes.

Una característica importante de Subversion es que, a diferencia de CVS, los archivos versionados no tienen cada uno un número de revisión independiente, en cambio, todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos del repositorio en un instante determinado.

Subversion puede acceder al repositorio a través de redes, lo que le permite ser usado por personas que se encuentran en distintas computadoras. A cierto nivel, la posibilidad de que varias personas puedan modificar y administrar el mismo conjunto de datos desde sus respectivas ubicaciones fomenta la colaboración. Se puede progresar más rápidamente sin un único conducto por el cual deban pasar todas las modificaciones. Y puesto que el trabajo se encuentra bajo el control de versiones, no hay razón para temer por que la calidad del mismo vaya a verse afectada —si se ha hecho un cambio incorrecto a los datos, simplemente deshaga ese cambio.

Más Información http://es.wikipedia.org/wiki/Subversion


1.2. Comandos básicos

1.2.0.1. Instalación

1.2.0.2. Creación copia local

Checkout: Es una subcomando del cliente que significa «Hazme una copia local».

http://svn.itic.cat : Es la dirección del servidor de subversión, el computador que gestiona el depósito centralizado de versiones.

1.2.0.3. Dentro del directorio creado

Si añadimos una carpeta donde ya existe un archivo, este a su vez también se añadirá. --> Pdf's, Imágenes, etc.

NUNCA añadir archivos que no sean versionables, es decir, un archivo que nunca cambie de version, ya que esto genera que ocupe mas espacio. Solucion: Incluir un archivo rest donde se encuentren links donde estan esos archivos.

1.2.0.4. Comprobar archivos y carpetas añadidos

Para comprobar que carpetas y archivos se han añadido, utilizar el comando siguiente el cual muestra todas las carpetas, sub-carpetas y archivos.

1.2.0.5. Cargar al servidor (Deposito)

1.2.0.6. Actualizar

1.2.0.7. Fichero Modificado Sin Actualizar (update)

Cuando se modifica un fichero sin haber actualización, al hacer un commit (cargar al servidor) dará un error que nos avisa de que el fichero modificado no es el más nuevo.

Hay que hacer un update, i seguido de esto se habrán “fusionado el fichero antiguo i el nuevo”

2. Otros comandos del Sistema de Control de Versiones

Hay muchos más comandos de los cuales en su mayoría están expuestos en los siguientes pasos, todos ellos se pueden comprobar desde el comando svn help:

2.1. Svn Help

La mayoría de los subcomandos reciben parámetros de tipo archivo y/o directorio. Si no se proveen parámetros a estos comandos, por omisión descenderán recursivamente desde el directorio actual (incluyéndolo).

2.1.1. Subcomandos disponibles

2.1.1.1. add

Pone archivos y directorios bajo control de versiones, agendándolos para ser añadidos al repositorio. Serán añadidos en el próximo commit. uso: add RUTA...

2.1.1.2. blame (praise, annotate, ann)

Envía a la salida el contenido de los archivos o URLs especificados, conjuntamente con la información sobre el autor y la revisión. uso: blame OBJETIVO[@REV]...

2.1.1.3. cat

Envía a la salida el contenido de los archivos o URLs. uso: cat OBJETIVO[@REV]...

2.1.1.4. changelist (cl)

Asociar (o desasociar) a la lista de cambios NOMLIST con los archivos indicados. uso: 1. changelist NOMLIST OBJETIVO...

  1. changelist --remove OBJETIVO...

2.1.1.5. checkout (co)

Check out a working copy from a repository. usage: checkout URL[@REV]... [PATH]

2.1.1.6. cleanup

Limpiar recursivamente la copia de trabajo, removiendo locks, continuando operaciones inconclusas, etc. uso: cleanup [RUTA...]

2.1.1.7. commit (ci)

Envía cambios desde la copia de trabajo al repositorio. uso: commit [RUTA...]

2.1.1.8. copy (cp)

Duplicate something in working copy or repository, remembering history. usage: copy SRC[@REV]... DST

When copying multiple sources, they will be added as children of DST, which must be a directory.

WARNING: For compatibility with previous versions of Subversion, copies performed using two working copy paths (WC -> WC) will not contact the repository. As such, they may not, by default, be able to propagate merge tracking information from the source of the copy to the destination.

2.1.1.9. delete (del, remove, rm)

Elimina archivos y directorios del control de versiones. uso: 1. delete RUTA...

  1. delete URL...
  1. Cada ítem especificado con una RUTA es marcado para ser borrado en el siguiente commit. Los archivos, y directorios a los que nunca se les haya   hecho commit antes, serán borrados inmediatamente de la copia de trabajo a menos que se use la opción --keep-local.
    • Las RUTAs que son, o contienen, ítems modificados o no versionados, no serán eliminadas a menos que se use la opción --force.
  2. Cada ítem especificado con un URL es eliminado en el repositorio mediante un commit inmediato.

2.1.1.10. diff (di)

Muestra las diferencias entre dos revisiones o rutas. uso: 1. diff [-c M | -r N[:M]] [OBJETIVO[@REV]...]

  1. diff [-r N[:M]] --old=OBJ-VIEJ[@REVVIEJ] [--new=OBJ-NUE[@REVNUEV]] \[RUTA...]
  2. diff NUE-URL[@VIEREJ] URL-NUE[@NUEVREV]
  1. Muestra los cambios hechos a los OBJETIVOS tal como existen en REV entre dos revisiones. Los OBJETIVOs pueden ser todos rutas de una copia de   trabajo o todos URLs. Si son rutas de una copia de trabajo N es por defecto BASE y M la versión local; si son URLs se debe especificar N y M es por defecto HEAD.
    • La opción «-c M»es equivalente a «-r N:M»donde N = M-1. Usando «-c -M»se logra lo opuesto: «-r M:N»donde N = M-1.
  2. Muestra las diferencias entre OBJ-VIEJ tal como existía en REVVIEJ y OBJ-NUEV tan como existía en REVNUEV. Las rutas, si se dan, son
    • relativas a OBJ-VIEJ y OBJ-NUEV y restringen la salida a las diferencias para esas rutas. OBJ-VIEJ y OBJ-NUEV pueden ser rutas de una copia de trabajo o URL[@REV]. OBJ-NUEV es por defecto OBJ-VIEJ si no se especifica. -r N hace que REVVIEJ sea por defecto N, -r N:M hace que REVVIEJ sea   por defecto N y que REVNUE sea por defecto M.
  3. Atajo para «svn diff --old=URL-VIEJ[@REVVIEJ] --new=URL-NUEV[@REVNUEV]« Use simplemente «svn diff»para mostrar las modificaciones locales de una copia de trabajo.

2.1.1.11. export

Crea una copia no versionada de un árbol. uso: 1. export [-r REV] URL[@REVPEG] [RUTA]

  1. export [-r REV] RUTA1[@REVPEG] [RUTA2]
  1. Exporta un árbol de directorios limpio del repositorio a RUTA, especificado por RUTA, en la revisión REV si se especifica, de otro modo se exporta HEAD. Si se omite la RUTA, se usa el último componente del URL para el nombre del directorio local creado.
  2. Exporta un árbol de directorios limpio a RUTA2 a partir de la copia de trabajo especificada por RUTA1, en la revisión REV si especificada, si no en WORKING. Si se omite RUTA2, se usa el último componente de RUTA1 para el nombre del directorio local creado. Si no se especifica REV se preservarán todos los cambios locales. Los archivos que no estén bajo control de versiones no se copiarán. Si se especifica, REVPEG determina la revisión en la que el objetivo se busca primero.

2.1.1.12. help (?, h)

Describe el uso de este programa o de sus subcomandos. uso: help [SUBCOMANDO...]

2.1.1.13. import

Hace commit de un archivo o un árbol de archivos no versionado a un URL. uso: import [RUTA] URL

2.1.1.14. info

Muestra información acerca de un ítem local o remoto. uso: info [OBJETIVO[@REV]...]

2.1.1.15. list (ls)

Lista las entradas de directorio en el repositorio. uso: list [OBJETIVO[@REV]...]

2.1.1.16. lock

Bloquea rutas de la copia de trabajo o URLs en el repositorio de modo que ningún otro usuario pueda hacer commit de nuevos cambios en ellos. uso: lock OBJETIVO...

2.1.1.17. log

Show the log messages for a set of revision(s) and/or file(s). usage: 1. log [PATH]

2.1.1.18. merge

Apply the differences between two sources to a working copy path. usage: 1. merge sourceURL1[@N] sourceURL2[@M] [WCPATH]

  1. merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH]
  2. merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [WCPATH]
  1. In the first form, the source URLs are specified at revisions N and M. These are the two sources to be compared. The revisions default to HEAD if omitted.
  2. In the second form, the URLs corresponding to the source working copy paths define the sources to be compared. The revisions must be specified.
  3. In the third form, SOURCE can be either a URL or a working copy path (in which case its corresponding URL is used). SOURCE (in revision REV) is compared as it existed between revisions N and M for each revision range provided. If REV is not specified, HEAD is assumed. '-c M' is equivalent to '-r <M-1>:M', and '-c -M' does the reverse: '-r M:<M-1>'. If no revision ranges are specified, the default range of 0:REV is used. Multiple '-c' and/or '-r' options may be specified, and mixing of forward and reverse ranges is allowed. WCPATH is the working copy path that will receive the changes. If WCPATH is omitted, a default value of '.' is assumed, unless the sources have identical basenames that match a file within '.': in which case, the differences will be applied to that file. NOTE: Subversion will only record metadata to track the merge if the two sources are on the same line of history -- if the first source is an ancestor of the second, or vice-versa. This is guaranteed to be the case when using the third form listed above. The --ignore-ancestry option overrides this, forcing Subversion to regard the sources as unrelated and not to track the merge.

mergeinfo

Muestra información acerca de un ítem local o remoto. uso: info [OBJETIVO[@REV]...]

2.1.1.19. mkdir

Crea un nuevo directorio bajo control de versiones. uso: 1. mkdir RUTA...

  1. mkdir URL...

2.1.1.20. move (mv, rename, ren)

Mueve y/o cambia el nombre de algo en la copia de trabajo o en el repositorio. uso: move ORIG... DEST

Cuando se muevan múltiples fuentes éstas se añadiran como hijas de DEST, que deberá ser un directorio.

2.1.1.21. propdel (pdel, pd)

Remover NOMBREPROP de los archivos, directorios, o revisiones. uso: 1. propdel NOMBREPROP [RUTA...]

  1. propdel NOMBREPROP --revprop -r REV [OBJETIVO]
  1. Remueve propiedades versionadas en la copia de trabajo.
  2. Remueve propiedades no versionadas remotas en la revisión REV del repositorio.
    • OBJETIVO sólo se usa para determinar sobre qué repositorio operar.

2.1.1.22. propedit (pedit, pe)

Edita una propiedad con un editor externo. uso: 1. propedit NOMBREPROP OBJETIVO...

  1. propedit NOMBREPROP --revprop -r REV [OBJETIVO]
  1. Edita propiedades versionadas en la copia de trabajo o en el repositorio.
  2. Edita propiedades no versionadas remotas en la revisión del repositorio.
    • OBJETIVO sólo se usa para determinar sobre qué repositorio operar.

Vea «svn help propset»para más información sobre asignar valores a propiedades.

2.1.1.23. propget (pget, pg)

Print the value of a property on files, dirs, or revisions. usage: 1. propget PROPNAME [TARGET[@REV]...]

  1. propget PROPNAME --revprop -r REV [TARGET]
  1. Prints versioned props. If specified, REV determines in which revision the target is first looked up.
  2. Prints unversioned remote prop on repos revision.
    • TARGET only determines which repository to access.
    By default, this subcommand will add an extra newline to the end of the property values so that the output looks pretty. Also, whenever there are multiple paths involved, each property value is prefixed with the path with which it is associated. Use the --strict option to disable these beautifications (useful when redirecting a binary property value to a file, but available only if you supply a single TARGET to a non-recursive propget operation).

2.1.1.24. proplist (plist, pl)

Lista todas las propiedades de archivos, directorios o revisiones. uso: 1. proplist [OBJETIVO[@REV]...]

  1. proplist --revprop -r REV [OBJETIVO] OBJETIVO sólo se usa para determinar sobre qué repositorio operar.
  1. Lista propiedades versionadas. Si se especifica, REV determina la revisión en la que el objetivo se busca primero.
  2. Lista propiedades remotas no versionadas en la revisión del repositorio.

2.1.1.25. propset (pset, ps)

Set the value of a property on files, dirs, or revisions. usage: 1. propset PROPNAME PROPVAL PATH...

  1. propset PROPNAME --revprop -r REV PROPVAL [TARGET]
  1. Changes a versioned file or directory property in a working copy.
  2. Changes an unversioned property on a repository revision.
    • (TARGET only determines which repository to access.)

The value may be provided with the --file option instead of PROPVAL.

2.1.1.26. resolve

Resolver conflictos al trabajar copiando archivos o directorios. uso: resolve --accept=ARG [RUTA...]

Nota: actualmente se requiere la opción --accept.

2.1.1.27. resolved

Remueve el estado de conflicto de archivos o directorios en copias de trabajo. uso: resolved RUTA...

Nota: Este subcomando no resuelve semánticamente los conflictos, ni quita los demarcadores de éstos. Simplemente elimina los archivos auxiliares relacionados y permite que la RUTA pueda intervenir de nuevo en un commit. Su uso es ahora obsoleto y se recomienda usar «svn resolve --accept working«.

2.1.1.28. revert

Restituye el archivo de la copia de trabajo (deshace la mayoría de las ediciones locales). uso: revert RUTA...

Nota: Este subcomando no requiere de acceso a la red y resuelve cualquier estado de conflicto. Sin embargo no restituye directorios eliminados.

Los tres últimos comandos no tienen más datos.

2.1.1.29. switch (sw)

2.1.1.30. unlock

2.1.1.31. update (up)


2023-07-03 11:46