Cómo administrar proyectos con SubVersion (Cómo SVN)

De LIDSOL

(Redirigido desde Como SVN)

Contenido

¿Qué es SubVersion?

SubVersion es un sistema de control de versiones libre, que toma lo mejor de CVS, su predecesor, y permite un control con un nivel mayor de precisión sobre los elementos que están siendo versionados.

En otras palabras, es un sistema que permite a varias personas tener el código fuente de un proyecto controlado a fin de que cada una de ellas pueda aportar actualizaciones y añadiduras a los distintos archivos que conforman el proyecto, minimizando los roces entre los participantes y evitando los problemas derivados de realizar un control "a mano", ya que de manera automática rastreará los cambios realizados al código fuente y al ser enviados a un repositorio central, los propagará en la copia local del proyecto de cada participante. De esta manera, es posible trabajar con distintas personas en tiempos distintos o simultáneamente y es más fácil rastrear errores, ya que se puede regresar cualquier archivo a una versión específica.

¿Por qué necesito un control de versiones?

SubVersion evita el clásico síndrome de la "versión final definitiva definitiva bis", cuando se termina por no estar seguro de cuál de todos los conjuntos de archivo resulta ser el definitivo, además de omisiones y la pérdida de tiempo derivadas de el intentar integrar los cambios "a mano" al código fuente.

Incluso para archivos que no son versionados de manera detallada, tales como documentación en formatos binarios (como ODF) es conveniente, aún cuando no permite un trabajo simultáneo de varias personas en el mismo archivo.

Otra ventaja muy significativa es que es más sencillo reponerse de la pérdida de información debida, por ejemplo, a la falla en el disco duro en el equipo de alguno de los integrantes, si todos los integrantes poseen copias actualizadas de los archivos del proyecto, cosa que el sistema de control de versiones favorece.

Instalar SubVersion

Nota: para GNU/Linux y los BSDs, existe un programa llamado rapidSVN que dice parecerse mucho a TortoiseSVN; a continuación se indican las instrucciones para obtener el cliente de línea de comandos.


Para Debian GNU/Linux y Ubuntu GNU/Linux

i. Abrir Synaptic
ii. Buscar paquete “SubVersion” e instalarlo


Para FreeBSD

i. Abrir una terminal como root
ii. Ir a /usr/ports/devel/subversion
iii. Ejecutar make install clean


Para TuDistroFavorita

i. Buscar en el manejador de paquetes, el paquete SubVersion
ii. Instalarlo


Para Windows 2000/XP/ME/98

i. Ir a http://tortoisesvn.tigris.org/
ii. Descargar e instalar TortoiseSVN
iii. Reiniciar
Nota: Para Windows pre-2000 existe una versión específica de TortoiseSVN


Conectarse al repositorio por primera vez

Clientes de línea de comandos (BSDs, GNU/Linux):

i. Abrir una terminal donde se desea que se creen los archivos del proyecto como un usuario normal
ii. Ejecutar la orden svn checkout url , donde url es la dirección oficial del repositorio del proyecto (Nota:ver más abajo direcciones de proyectos de LIDSOL)
iii. Esperar a que se obtenga la revisión más actual


Cliente gráfico TortoiseSVN (Windows)

i. Abrir una ventana de Mi PC o “Explorador de Windows” en donde se desea que se creen los archivos del repositorio
ii. Hacer clic con el botón secundario (derecho) sobre algún lugar vacío de la ventana de Mi PC/Explorador de Windows
iii. Seleccionar la opción checkout dentro del menú svn. Proporcionar la url ; si se dispone de clave y nombre de usuario, también (en caso contrario se puede dejar en blanco).
iv. Esperar a que el botoń de O.K. Se habilite después de que TortoiseSVN baje todos los archivos.



Mantenerse al día

Clientes de línea de comandos (BSDs, GNU/Linux)

i. Abrir una terminal ubicada en el sitio donde están los archivos del repositorio (se puede actualizar nadamás a partir de un subdirectorio -una rama-, o incluso un archivo, situándose en dicho subdirectorio o escribiendo el nombre del archivo que se desea actualizar a continuación de svn up).
ii. Ejecutar la orden svn up como un usuario normal.


Cliente gráfico TortoiseSVN (Windows)

i. Hacer clic con el botón secundario (derecho) sobre el directorio, subdirectorio o archivo del proyecto que se desee actualizar.
ii. Elegir la opción TortoiseSVN update del menú.



Añadir, renombrar y quitar archivos de un repositorio existente

Clientes de línea de comandos (BSDs, GNU/Linux)

i. Colocar una terminal donde se encuentren los archivos que se desean modificar
ii. Ejecutar la orden svn add, move o delete nombreDeArchivo según sea el caso


Cliente gráfico TortoiseSVN (Windows)

i. Situarse en donde se encuentren los archivos que se desean modificar
ii. Hacer clic con el botón secundario (derecho) y seleccionar TortoiseSVN Add, Delete o Rename según sea el caso



Enviar cambios al contenido de los archivos al repositorio

Para enviar cambios es necesario tener permisos de escritura en el repositorio. Una vez que se han hecho las modificaciones al contenido de los archivos, se siguen estas instrucciones:

Clientes de línea de comandos (BSDs, GNU/Linux)

i. Abrir una terminal ubicada en el sitio donde están los archivos del repositorio (se puede enviar cambios nadamás a partir de un subdirectorio -una rama-, situándose en dicho subdirectorio o incluso un archivo, situándose en dicho subdirectorio o escribiendo el nombre del archivo del cuál se desean enviar cambios a continuación de svn ci -m “mensaje”).
ii. Ejecutar la orden svn ci -m “mensaje” como un usuario normal, donde mensaje es una descripción de los cambios enviados


Cliente gráfico TortoiseSVN (Windows)

i. Hacer clic con el botón secundario (derecho) sobre el directorio, subdirectorio o archivo del proyecto que se desee actualizar.
ii. Elegir la opción TortoiseSVN commit del menú.
iii. Escribir una descripción de los cambios enviados.



Resolver conflictos

  • Ponerse en contacto con la persona con la que se ocasionó el conflicto, de ser necesario
  • Editar los archivos .rNN y .mine a fin de obtener la versión “definitiva”.


Clientes de línea de comandos (BSDs, GNU/Linux)

i. Ejecutar la orden svn resolved NombreDeArchivo
ii. Enviar los cambios al repositorio


Cliente gráfico TortoiseSVN (Windows)

i. Hacer clic con el botón secundario (derecho) sobre el directorio, subdirectorio o archivo del proyecto que se desee actualizar.
ii. Elegir la opción TortoiseSVN resolved del menú.
iii. Enviar los cambios al repositorio 



Crear un repositorio

Clientes de línea de comandos (BSDs, GNU/Linux)

i. Situarse en una terminal en el lugar donde se desea almacenar la base de datos del repositorio (en FreeBSD se recomienda /usr/local/repositories)
ii. Ejecutar la orden svnadmin create nombreDelProyecto
iii. Poner a funcionar svnserve (depende de cada distribución usada)


Cliente gráfico TortoiseSVN (Windows)

i. Situarse en donde se desee almacenar la base de datos del repositorio
ii. Hacer clic con el botón secundario (derecho) y seleccionar TortoiseSVN Create Repository
iii. Poner a funcionar el servicio svnserve



Importar datos a un repositorio nuevo

Clientes de línea de comandos (BSDs, GNU/Linux)

i. Colocar una terminal donde se encuentren los archivos que se desean importar
ii. Ejecutar la orden svn import URL


Cliente gráfico TortoiseSVN (Windows)

i. Situarse en donde se encuentren los archivos que se desean importar
ii. Hacer clic con el botón secundario (derecho) y seleccionar TortoiseSVN Import



URLs de los proyectos versionados de LIDSOL

* MotorJhttp://svn.lidsol.org/motorj



Más información

* Página principal de SubVersion: http://svn.tigris.org/
* SubVersion Book  - http://svnbook.red-bean.com/
* Tutorial de TortoiseSVN con imágenes(PDF)

Sitios que hospedan proyectos SVN gratis

* LIDSOL, para proyectos de Software Libre relacionados con el laboratorio (Contactar con Mauro Parra)
* Google Code, Explicación
* SourceForge, para proyectos Open Source y libres
* Mexinetica, para propósito general (especialmente proyectos escolares)
Herramientas personales