Ubicación: Inicio > Tecnologías > Subversion > Trabajando con el cliente TortoiseSVN
TortoiseSVN es un cliente Subversion, implementado como una extensión al shell de Windows. Es software libre liberado según la licencia GNU GPL.
Lo primero que tenemos que hacer es descargar el programa desde esta página: http://tortoisesvn.tigris.org/. Una vez descargado, lo instalamos.
Subversion es un sistema centralizado para compartir información. En su núcleo está un repositorio, que es un almacén central de datos. El respositorio almacena información en forma de un árbol de ficheros - una jerarquía típica de ficheros y directorios. Cualquier número de clientes se conectan al repositorio, y luego leen o esriben esos ficheros. Al escribir datos, el cliente hace que la información esté disponible para los otros; al leer los datos, el cliente recibe la información de los demás.
Todos los sistemas de control de versiones tienen que resolver los mismos problemas fundamentales: ¿cómo permitirá el sistema compartir información entre usuarios, pero evitando que ellos accidentalmente se pisen unos a otros? Es demasiado sencillo que los usuarios accidentalmente sobreescriban los cambios del otro en el repositorio.
TortoiseSVN utiliza la solución copiar-modificar-fusionar. En este modelo, el cliente de cada usuario lee el repositorio y crea una copia de trabajo personal del fichero o del proyecto. Luego, los usuarios trabajan en paralelo, modificando sus copias privadas. Finalmente, las copias privadas se fusionan juntas en una nueva versión final. El sistema de control de versiones a menudo ofrece ayuda en la fusión, pero al final la persona es la responsable de hacer que ocurra correctamente.
Una copia de trabajo de Subversion es un árbol de directorios ordinario en su sistema local, conteniendo una colección de ficheros. Puede editar estos ficheros como desee, y si son ficheros de código fuente, puede compilar su programa de la forma habitual. Su copia de trabajo es su propia área de trabajo privada: Subversion nunca incorporará los cambios de otra gente, ni hará que sus cambios estén disponibles para los demás, a menos que se lo pida explícitamente.
Para publicar sus cambios para los demás, puede utilizar el comando de Subversion commit (Confirmar).
Para poner al día su proyecto, podemos pedirle a Subversion actualizar nuestra copia de trabajo, utilizando el comando de Subversion actualizar (update).
Los repositorios de Subversion pueden ser accedidos por muchos métodos diversos - en discos locales, o a través de varios protocolos de red. La ruta de un repositorio es siempre, sin embargo, una URL. El esquema URL indica el método de acceso:
Cada vez que el repositorio acepta una confirmación, crea un nuevo estado del árbol de ficheros, llamado revisión. A cada revisión se le asigna un número natural único, un número mayor que la revisión anterior. La revisión inicial de un repositorio recién creado se numera como cero, y consiste únicamente en un directorio raíz vacío.
Números globales de revisión: Al contrario que la mayoría del resto de sistemas de control de versiones, los números de revisión de Subversion se aplican a árboles completos, no a los ficheros individuales. Cada número de revisión selecciona un árbol entero, un estado particular del repositorio tras algún cambio confirmado. Otra forma de verlo es pensar que la revisión N representa el estado del repositorio tras la confirmación N-ésima. Cuando un usuario de Subversion habla de la “revision 5 de foo.c”, realmente quieren decir “foo.c tal y como estaba en la revisión 5”.
Por cada fichero en un directorio de trabajo, Subversion grabará dos piezas esenciales de información en el área administrativa .svn/:
Con esta información, hablando con el repositorio, Subversion puede decirle en cuál de los siguientes cuatro estados está un fichero de trabajo:
El fichero no se ha cambiado en el directorio de trabajo, y no se han confirmado cambios a ese fichero en el repositorio desde su revisión de trabajo. Una confirmación de ese fichero no hará nada, y una actualización de ese fichero tampoco hará nada.
El fichero ha sido cambiado en el directorio de trabajo y no se han confirmado cambios a ese fichero en el repositorio desde su revisión de trabajo. Hay cambios que no han sido confirmados en el repositorio. Por lo tanto, una confirmación del fichero publicará los cambios, y una actualización del fichero no producirá ningún cambio.
El fichero no se ha cambiado en el directorio de trabajo, pero se han confirmado cambios a ese fichero en el repositorio desde su revisión de trabajo. El fichero ha sido temporalmente actualizado para hacerlo corresponder con la revisión pública. Una confirmación del fichero no producirá ningun cambio y una actualización dejará los últimos cambios sobre nuestra revisión de trabajo.
El fichero ha sido cambiado tanto en el directorio de trabajo como en el repositorio. Una confirmación del fichero nos dará el error “fuera de fecha” (”out-of-date”). El fichero deberá ser primeramente actualizado; lo que hará que se fusionen los cambios locales con los públicos. Si subversion no puede completar la fusión, quedará en manos del usuario la resolución de este conflicto.
svnadmin create --fs-type bdb MiNuevoRepositorio
o
svnadmin create --fs-type fsfs MiNuevoRepositorio
Ahora ya tenemos un nuevo repositorio que se encuentra en C:\SVN\MiNuevoRepositorio.
Entonces se creará un repositorio dentro de la nueva carpeta. ¡¡¡No edites los ficheros!!!. Si obtienes algún error asegúrate de que la carpeta esté vacía y que no esté protegida contra escritura.
Existe un completísimo manual de TortoiseSVN donde se analizan detalladamente las diferentes opciones del programa: Se puede leer aquí: http://tortoisesvn.net/docs/nightly/TortoiseSVN_es