Algunas personas tienen problemas para absorber una nueva tecnología leyendo un enfoque del tipo "arriba a abajo" como el que ofrece este libro. Esta sección es una introducción muy breve a Subversion, y está pensada para dar a los principiantes algo con lo que defenderse. Si usted es de los que prefiere aprender experimentando, la siguiente demostración le pondrá en marcha. A lo largo del camino, le iremos dando enlaces a los capítulos relevantes de este libro.
Si a usted le resulta completamente nuevo el concepto de control de versiones o el modelo “copiar-modificar-mezclar” usado tanto por CVS como por Subversion, debería leer Capítulo 2, Conceptos básicos antes de seguir adelante.
Nota | |
---|---|
El siguiente ejemplo asume que usted tiene preparados
tanto el cliente de línea de comandos de Subversion svn,
como la herramienta administrativa svnadmin.
También asume que su cliente svn ha sido compilado
con soporte para la base de datos Berkeley DB. Puede comprobarlo ejecutando
svn --version y asegurándose de que el modulo
|
Subversion almacena todos los datos versionados en un repositorio central. Para comenzar, cree un nuevo repositorio:
$ svnadmin create /path/to/repos $ ls /path/to/repos conf/ dav/ db/ format hooks/ locks/ README.txt
Este comando crea un nuevo directorio
/path/to/repos
que contiene un repositorio de
Subversion. Asegúrese de que este directorio reside en un disco local y
no compartido en red. Este nuevo directorio
contiene principalmente una colección de ficheros de la base de
datos Berkeley DB. Para más información sobre la creación y
mantenimiento de repositorios, vea Capítulo 5, Administración del Repositorio.
A continuación, cree un árbol de ficheros y directorios para
importar dentro del repositorio. Por razones que se aclararán más
tarde (vea Capítulo 4, Crear ramas y fusionarlas), su estructura debería
tener tres directorios en el primer nivel de la jerarquía
llamados branches
,tags
,
y trunk
:
/tmp/project/branches/ /tmp/project/tags/ /tmp/project/trunk/ foo.c bar.c Makefile …
Una vez tenga un árbol de datos listo para continuar, impórtelo dentro del repositorio con el comando svn import (vea “svn import”):
$ svn import /tmp/project file:///path/to/repos -m "initial import" Adding /tmp/project/branches Adding /tmp/project/tags Adding /tmp/project/trunk Adding /tmp/project/trunk/foo.c Adding /tmp/project/trunk/bar.c Adding /tmp/project/trunk/Makefile … Committed revision 1. $
Ahora el repositorio contiene este árbol de datos. Observe
que el directorio original /tmp/project
no se ha modificado; Subversion no se preocupa por él (de hecho,
puede incluso borrar ese directorio si lo desea).
Para comenzar a manipular los datos del repositorio, necesitará
crear una nueva “copia de trabajo” de los datos,
una especie de entorno de trabajo privado. Pida a Subversion que
“obtenga”
[5] una copia de
trabajo del directorio trunk
del repositorio:
$ svn checkout file:///path/to/repos/trunk project A project/foo.c A project/bar.c A project/Makefile … Checked out revision 1.
Ahora usted dispone de una copia personal de parte del repositorio
en un nuevo directorio llamado project
. Puede
editar los ficheros en su copia de trabajo y después
depositar esos cambios
de nuevo en el repositorio.
Entre en su copia de trabajo y edite el contenido de un fichero.
Ejecute svn diff para ver las diferencias introducidas por sus cambios en formato diff unificado.
Ejecute svn commit para depositar la nueva versión de su fichero en el repositorio.
Ejecute svn update para “sincronizar” su copia de trabajo con el repositorio.
Para un recorrido completo por todas las operaciones que puede realizar con su copia de trabajo, vea Capítulo 3, Recorrido guiado.
Llegado este punto, usted tiene la opción de hacer que su repositorio Subversion esté disponible a otros a través de una red. Vea Capítulo 6, Configuración del servidor para aprender acerca de los diferentes tipos de procesos servidor disponibles y cómo configurarlos.
[5] N.T.: En la bibliografía sobre control de versiones se suele utilizar el vocablo inglés «check out» para referirse a la operación usada para obtener una copia (parcial) de un repositorio centralizado. En ocasiones, la obtención de dicha copia implica la conexión a un servidor remoto, por lo que en la traducción es común emplear indistintamente los términos «obtener» y «descargar» para referirse a esta operación.