Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TortoiseSVN. Manual de Usuario PDF
TortoiseSVN. Manual de Usuario PDF
Manual de usuario
Fecha:
Referencia:
EJIE S.A.
Mediterrneo, 3
Tel. 945 01 73 00*
Fax. 945 01 73 01
01010 Vitoria-Gasteiz
Posta-kutxatila / Apartado: 809
01080 Vitoria-Gasteiz
www.ejie.es
Este documento es propiedad de EJIE, S.A. y su contenido es confidencial. Este documento no puede ser reproducido, en su totalidad o parcialmente, ni
mostrado a otros, ni utilizado para otros propsitos que los que han originado su entrega, sin el previo permiso escrito de EJIE, S.A.. En el caso de ser
entregado en virtud de un contrato, su utilizacin estar limitada a lo expresamente autorizado en dicho contrato. EJIE, S.A. no podr ser considerada
responsable de eventuales errores u omisiones en la edicin del documento.
Control de documentacin
Ttulo de documento: TortoiseSVN
Histrico de versiones
Cdigo:
Versin:
1.0
Fecha:
Resumen de cambios:
Control de difusin
Responsable:
Aprobado por:
Firma:
Fecha:
Distribucin:
Referencias de archivo
Autor: Consultora de reas de conocimiento
Nombre archivo:
Localizacin:
2/20
Contenido
Captulo/seccin
Pgina
Introduccin
Conceptos bsicos
Funciones elementales
4.1
4.2
4.3
4.4
10
4.5
Resolver conflictos
11
4.6
12
4.7
13
4.8
Ver diferencias
14
14
4.9
16
16
4.11 Limpiar
17
17
4.13 Fusionar
19
3/20
Introduccin
El presente documento describe cules son las tareas bsicas que se pueden ejecutar en la explotacin
de la herramienta TortoiseSVN.
Conceptos bsicos
TortoiseSVN es un cliente gratuito de cdigo abierto para el sistema de control de versiones Subversion.
Est desarrollado bajo la Licencia Pblica General GNU (GPL) y se puede acceder al cdigo fuente de este
programa en este enlace http://tortoisesvn.tigris.org/svn/tortoisesvn/.
TortoiseSVN maneja ficheros y directorios a lo largo del tiempo. Los ficheros se almacenan en un
repositorio central. El repositorio es prcticamente lo mismo que un servidor de ficheros ordinario, salvo que
recuerda todos los cambios que se hayan hecho a sus ficheros y directorios. Esto permite que pueda recuperar
versiones antiguas de sus ficheros y examinar la historia de cundo y cmo cambiaron sus datos, y quin hizo el
cambio.
Entre las caractersticas de TortoiseSVN cabe destacar:
Integracin con el shell de Windows
TortoiseSVN se integra perfectamente en el shell de Windows (por ejemplo, el explorador). Esto significa
que puede seguir trabajando con las herramientas que ya conoce. Y que no tiene que cambiar a una aplicacin
diferente cada vez que necesite las funciones del control de versiones!
Los mens contextuales de TortoiseSVN tambin funcionan en otros administradores de archivos, y en
el dilogo Archivo/Abrir que es comn a la mayora de aplicaciones estndar de Windows. Sin embargo, debe
tenerse en cuenta que TortoiseSVN est desarrollado con la mirada puesta en hacerle extensin del Explorador
de Windows. Por este motivo, puede que en otras aplicaciones la integracin no sea tan completa y que, por
ejemplo, los iconos sobreimpresionados en las carpetas no se muestren.
Iconos sobreimpresionados
El estado de cada carpeta y fichero versionado se indica por pequeos iconos sobreimpresionados. De
esta forma, puede ver fcilmente el estado en el que se encuentra su copia de trabajo.
TortoiseMerge: Permite ver las diferencias entre ficheros de texto, fusionar esos cambios e
incluso revisar y aplicar ficheros de diff unificados, a menudo llamados parches.
4/20
SubWCRev : Es un programa de consola para Windows que puede utilizarse para leer el estado
de una copia de trabajo local y opcionalmente realizar sustituciones de palabras clave en un
fichero plantilla.
Funciones elementales
Antes de empezar a utilizar TortoiseSVN se deben cumplir las siguientes premisas:
5/20
Tambin es interesante conocer el tratamiento que hace Subversion a la rama principal (trunk), ramas
(branches) y etiquetas (tags o releases):
Importante respecto a CVS: Dejan de existir los conceptos de mdulo, ramas, y etiquetas, como
entidades separadas:
Ramas y etiquetas (branches y tags): Internamente no existen tales conceptos, si quieres una
rama la creas a partir de un enlace a un nmero de revisin del cdigo (se comparte el historial, no
es necesario copiar el proyecto entero). Una etiqueta es una rama a la que no se le aaden ms
cambios.
Mdulos: En Subversion solo existen directorios, no hay concepto de mdulo.
Antes de que se importen datos al repositorio, primero se deber pensar cmo se quiere organizar los
datos. Si se utiliza uno de los patrones recomendados ser ms fcil. Hay algunas formas estndar y
recomendadas de organizar un repositorio. La mayora de la gente crea un directorio trunk (tronco) para alojar la
"lnea principal" del desarrollo, un directorio branches (ramas) para que contenga las copias/ramas, y un
directorio tags (etiquetas) para contener las copias/etiquetas.
Si un repositorio slo aloja un proyecto, entonces la gente a menudo crea estos directorios en el primer
nivel:
/trunk
/branches
/tags
Si un repositorio contiene mltiples proyectos, la gente a menudo indexa por ramas:
/trunk/paint
/trunk/calc
/branches/paint
/branches/calc
/tags/paint
/tags/calc
o por proyecto:
/paint/trunk
/paint/branches
6/20
/paint/tags
/calc/trunk
/calc/branches
/calc/tags
4.1
5. Introducir la URL del repositorio en el que quiere importar su proyecto. El mensaje de importacin
se utiliza como un mensaje de registro.
6. Tan pronto como se presione Aceptar, TortoiseSVN importa el rbol completo de directorios
incluyendo todos los ficheros en el repositorio. El nombre de la carpeta que se est importando
no aparece en el repositorio, slo los contenidos de los ficheros. El proyecto ahora est
almacenado en el repositorio bajo el control de versiones.
NOTA: Hay que tener en cuenta que la carpeta que se ha importado no est bajo el control de
versiones. Para obtener una copia de trabajo bajo el control de versiones se necesita obtener la versin
que se acaba de importar.
7/20
4.2
Si se desea obtener slo la carpeta superior y omitir todas las subcarpetas, habr que
hacer uso de la casilla Slo obtener la carpeta superior.
8/20
4.3
Enviar los cambios que se han hecho al repositorio se conoce como confirmar los cambios. Pero antes de
confirmar hay que estar seguro de que la copia de trabajo est actualizada. Se puede o bien ejecutar
TortoiseSVN > Actualizar directamente, o bien ejecutar TortoiseSVN > Comprobar Modificaciones primero, para
ver qu se ha cambiado localmente o en el servidor. Si la copia de trabajo est actualizada y no hay conflictos,
ya se est preparado para confirmar los cambios. Para ello:
1. Seleccionar los ficheros y/o carpetas que desee confirmar.
2. Seleccionar TortoiseSVN > Confirmar...
3. El dilogo de confirmacin mostrar todos los ficheros cambiados, incluso los ficheros aadidos,
borrados o no versionados:
9/20
4.4
Es necesario asegurarse de que los cambios que hacen los dems se incorporen a la copia de trabajo
local. El proceso de incorporar los cambios desde el servidor a la copia de trabajo local se conoce como
actualizacin. La actualizacin puede hacerse en ficheros sueltos, en un conjunto de ficheros, o recursivamente
en jerarquas completas de directorios. Para actualizar:
1. Seleccionar los ficheros y/o directorios que se deseen.
2. Hacer clic con el botn derecho y seleccionar TortoiseSVN > Actualizar en el men contextual
del explorador.
3. Aparecer una ventana con el progreso de la actualizacin segn se ejecuta. Los cambios que
los dems hayan hecho se fusionarn con los ficheros de la copia local, guardando cualquier
cambio que se hubiese hecho en los mismos ficheros de la copia local. El repositorio no se ve
afectado por una actualizacin.
10/20
1. Si se obtiene algn conflicto durante una actualizacin (esto puede suceder si los dems han
cambiado las mismas lneas del mismo fichero y esos cambios no concuerdan), el dilogo
muestra esos conflictos en rojo. Se puede hacer doble "clic" en esas lneas para iniciar la
herramienta de fusin externa para resolver los conflictos.
2. Cuando se completa la actualizacin, el dilogo de progreso le muestra un resumen con el
nmero de tems actualizados, aadidos, eliminados, en conflicto, etc. bajo la lista de ficheros.
3. El comando Actualizar estndar no tiene opciones y simplemente actualiza la copia de trabajo a
la revisin HEAD (*) del repositorio, lo que es el caso de uso ms comn. Si se desea ms control
sobre el proceso de actualizacin, se debera utilizar TortoiseSVN > Actualizar a la revisin....
Esto permite actualizar la copia de trabajo a una revisin especfica, no slo a la ms reciente.
NOTA: Actualizar a la revisin puede ser til a veces para ver cmo estaba el proyecto en un
momento anterior en su historia. Pero en general, actualizar ficheros individuales a una revisin anterior
no es una buena idea, ya que deja la copia de trabajo en un estado inconsistente.
(*) La revisin HEAD del repositorio es la ltima revisin de un fichero o una carpeta en el repositorio. En
contraposicin a ella existe la revisin BASE. La revisin base actual de un fichero o una carpeta en su copia de
trabajo. Esta es la revisin en la que estaba el fichero o la carpeta cuando se hizo la ltima operacin de
obtener, actualizar o confirmar. La revisin BASE normalmente no equivale a la revisin HEAD.
4.5
Resolver conflictos
De vez en cuando, se obtendr un conflicto cuando se actualizan los ficheros desde el repositorio. Un
conflicto ocurre cuando dos o ms desarrolladores han hecho cambios en las mismas lneas de un fichero. Dado
que Subversion no sabe nada de su proyecto, delega la resolucin de los conflictos en los desarrolladores.
Cuando se informa de un conficto, se debera abrir el fichero en cuestin, y buscar lneas que empiecen con el
texto <<<<<<<. El rea conflictiva se marca as:
<<<<<<< nombre-del-fichero
sus cambios
=======
cdigo fusionado del repositorio
11/20
>>>>>>> revisin
Adems, para cada fichero en conflicto Subversion deja tres ficheros adicionales en su directorio:
Entonces:
1. Se puede o bien lanzar una herramienta externa de fusiones / editor de conflictos con el men
contextual TortoiseSVN > Editar Conflictos o bien utilizar otro editor manualmente para resolver el
conflicto. Se debe decidir cmo tiene que quedar el cdigo, hacer los cambios necesarios, y
grabar el fichero.
2. Despus, se debe ejecutar el comando TortoiseSVN > Resolver y confirmar las modificaciones al
repositorio. El comando Resolver realmente no resuelve el conflicto. Simplemente elimina los
ficheros nombre-del-fichero.ext.mine y nombre-del-fichero.ext.r*, dejando confirmar los cambios.
Si se tienen conflictos con ficheros binarios, Subversion no intentar mezclar dichos ficheros por si
mismo.
Se puede utilizar el comando Resuelto para mltiples ficheros si se pulsa con el botn derecho en
la carpeta padre y se selecciona TortoiseSVN > Resuelto... Esto mostrar un dilogo con todos los
ficheros en conflicto dentro de esa carpeta, y permitir seleccionar cules marcar como resueltos.
4.6
Mientras se est trabajando en la copia de trabajo a menudo ser necesario saber qu ficheros se han
cambiado/aadido/borrado o renombrado, o incluso qu ficheros han sido cambiados y confirmados por los
dems. Para ello son tiles los iconos sobreimpresionados:
Una copia de trabajo recin obtenida tiene una marca verde como sobreimpresin.
Esto significa que el estado de Subversion es normal.
En cuanto se empiece a editar un fichero, el estado cambia a modificado y el icono
sobreimpresionado cambia entonces a una marca de exclamacin roja. De esta
forma se puede ver fcilmente qu ficheros se han cambiado desde la ltima vez que
se actualiz la copia de trabajo, y que necesitan ser confirmados.
Si durante una actualizacin ocurre un conflicto, el icono cambia a un signo de
exclamacin amarillo.
12/20
4.7
Para cada cambio que se haga y se confirme, se deber proporcionar un mensaje de registro de dicho
cambio. As se podr averiguar despus qu cambios se hicieron y por qu, y se tendr un registro detallado
para el proceso de desarrollo.
El dilogo de Registro de revisiones recopila todos esos mensajes de registro y se los ensea. La pantalla
se divide en tres paneles:
El panel superior muestra una lista de revisiones donde se confirmaron cambios a los
ficheros/carpetas. Este sumario incluye la fecha y la hora, la persona que confirm la revisin y el
inicio del mensaje de registro. Las lneas azules indican que algo se ha copiado a esta lnea de
desarrollo (quizs desde una rama).
El panel inferior muestra una lista de todos los ficheros y carpetas que se cambiaron como parte
de la revisin seleccionada.
La pgina de propiedades.
El dilogo de Progreso despus de que se termine una actualizacin. En ese caso el dilogo de
Registro slo mostrar aquellas revisiones que cambiaron desde la ltima actualizacin.
13/20
Como se puede apreciar en la imagen, los comentarios pueden enlazar con bug trackers como Mantis, y
de hecho, se pueden definir hooks para cerrar incidencias en Mantis segn se actualicen versiones en el
repositorio.
4.8
Ver diferencias
4.8.1.
Diferencias de ficheros
14/20
Cambios locales
Si se desea ver qu cambios se han hecho en la copia de trabajo, simplemente se utiliza el men
contextual del explorador y se selecciona TortoiseSVN > Diferenciar.
15/20
Si se han creado nuevos ficheros y/o directorios durante el proceso de desarrollo, se necesitar aadirlos
tambin al control de cdigo. Para ello se seleccionan los ficheros y/o directorios y se utiliza TortoiseSVN >
Aadir...
Despus de que se aadan los ficheros o directorios al control de cdigo, el fichero aparece con una
sobreimpresin de icono aadido que significa que primero se debe confirmar la copia de trabajo para que esos
ficheros y directorios estn disponibles para otros desarrolladores.
4.10 Deshacer cambios
Si se desea deshacer todos los cambios que se han hecho en un fichero desde la ltima actualizacin, se
necesita seleccionar el fichero, hacer "clic" con el botn derecho para sacar el men contextual, y luego
seleccionar el comando TortoiseSVN > Revertir. Aparecer un dilogo que muestra los ficheros que se han
cambiado y que se puede revertir. Se seleccionarn los que se desee revertir y se pulsar "Aceptar".
16/20
4.11 Limpiar
Si un comando de Subversion no puede completarse de forma correcta, quizs por problemas en el
servidor, la copia de trabajo puede quedarse en un estado inconsistente. En ese caso se deber utilizar
TortoiseSVN > Limpiar en la carpeta. Es una buena idea hacerlo en la rama superior de la copia de trabajo.
4.12 Crear ramas o etiquetas
Si se ha importado un proyecto con la estructura de directorios recomendados, crear una rama o una
etiqueta es muy simple:
Se selecciona la carpeta en la copia de trabajo de la que se desea hacer una rama o una etiqueta, y
luego se selecciona el comando TortoiseSVN > Rama/Etiqueta... La URL de destino por defecto para la nueva
rama ser la URL de origen en la que se basa la copia de trabajo. Se necesitar editar esa URL con la nueva
ruta para la rama/etiqueta. As que en vez de
http://svn.collab.net/repos/NombreDelProyecto/trunk
se usar algo como
http://svn.collab.net/repos/NombreDelProyecto/tags/Version_1.10
17/20
Copia de trabajo: La nueva rama es una copia idntica de la copia de trabajo local. Si se han
cambiado algunos ficheros a una revisin anterior en la copia de trabajo, o si se han hecho
cambios locales, esto es exactamente lo que ir a la copia. Naturalmente, esta clase de
etiquetado complejo conlleva transferir datos desde la copia de trabajo al repositorio si no existe
ya all.
Si se desea que su copia de trabajo se cambie automticamente a la rama recin creada, se utiliza la
casilla Cambiar la copia de trabajo a la nueva rama/etiqueta, asegurndose primero de que la copia de trabajo
no contenga modificaciones. Si las tiene, esos cambios se mezclarn en la copia de trabajo de la rama cuando
se haga el cambio.
Se pulsar "Aceptar" para confirmar la nueva copia al repositorio, proporcionando un mensaje de registro.
Hay que tener en cuenta que:
18/20
4.13 Fusionar
Mientras que las ramas se utilizan para mantener lneas de desarrollo separadas, en alguna etapa se
tendrn que fusionar los cambios hechos en una rama de vuelta en el tronco, o viceversa.
Un punto importante a recordar es que Fusionar est muy relacionado con Diferenciar. El proceso de
fusin trabaja generando una lista de diferencias entre dos puntos del repositorio, y aplicando esas diferencias a
la copia de trabajo. Por ejemplo, si se desea fusionar los cambios hechos en la revisin N, entonces se tendr
que comparar la revisin N con la revisin (N-1). Para hacerlo ms sencillo, cuando se utilice Mostrar Registro
para seleccionar un rango de revisiones a fusionar, TortoiseSVN har el ajuste automticamente.
En general es una buena idea realizar fusiones en una copia de trabajo sin modificar. Si se han hecho
otros cambios en la copia de trabajo, habr que confirmarlos primero. Si la fusin no funciona como se espera,
se puede querer revertir los cambios, y el comando Revertir descartar todos los cambios, incluidos cualquiera
que se haya hecho antes de la fusin.
19/20