Cómo administrar proyectos con SubVersion (Cómo SVN)
De LIDSOL
¿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
* MotorJ – http://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)
