¿Qué hace de TortoiseSVN un tan buen cliente de Subversion? Aquí hay una pequeña lista de sus características.
TortoiseSVN se integra perfectamente con la consola 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 aplicación diferente cada vez que necesite las funciones del control de versiones.
Y ni siquiera está obligado a usar el Explorador de Windows; los menús contextuales de TortoiseSVN también funcionan en otros administradores de archivos, y en el diálogo Archivo/Abrir que es común en la mayoría de aplicaciones estándar de Windows. Sin embargo, debe tener en cuenta que TortoiseSVN está desarrollado con la intención de ser una extensión del Explorador de Windows. Por este motivo, puede que en otras aplicaciones la integración no sea tan completa, y que por ejemplo, los íconos superpuestos no se muestren.
El estado de cada carpeta y archivo versionado se indica por pequeños íconos superpuestos. De esta forma, puede ver fácilmente el estado en el que se encuentra su copia de trabajo.
Cuando usted lista los cambios realizados a un archivo o carpeta, puede hacer click en una revisión para ver los comentarios de esa confirmación. Puede también ver una lista de archivos modificados - solamente haga click en un archivo para ver exactamente qué ha cambiado.
El diálogo de confirmación lista todos los ítems que han de ser incluidos en una confirmación, y cada item tiene una checkbox de tal manera que usted pueda escoger que cambios desea incluir.En caso que haya olvidado incluir algún archivo, los archivos que no están versionados pueden ser también listados.
Todos los comandos de Subversion están disponibles desde el menú contextual del explorador. TortoiseSVN añade su propio submenú allí.
Dado que TortoiseSVN es un cliente de Subversion, también queremos enseñarle algunas de las características del propio Subversion:
CVS sólo controla la historia de archivos individuales, pero Subversion implementa un sistema “virtual” de archivos versionados que toma en cuenta los cambios en todos los árboles de directorios en el tiempo. Los archivos y los directorios están versionados. Como resultado, hay comandos reales en el lado del cliente como mover y copiar que operan en archivos y directorios.
Una confirmación puede entrar al repositorio completamente, o no entrar en absoluto. Esto permite a los desarrolladores generar y confirmar cambios como unidades lógicas.
Cada archivo y carpeta tiene un conjunto invisible de “propiedades” adjuntos. Se puede crear y almacenar cualquier par de clave/valor que se desee. Las propiedades se versionan en el tiempo, igual que el contenido de los archivos.
Subversion tiene una noción abstracta del acceso al repositorio, haciéndo que se puedan implementar nuevos mecanismos de red fácilmente. El servidor de red “avanzado” de Subversion es un módulo para el servidor web Apache, que habla una variante de HTTP llamada WebDAV/DeltaV. Esto le da a Subversion una gran ventaja en estabilidad e interoperatividad, y provee varias características gratis: autenticación, autorización, compresión de la transmisión y navegación del repositorio, por ejemplo. También está disponible un proceso servidor de Subversion independiente. Este servidor habla un protocolo propio que puede encapsularse fácilmente sobre ssh.
Subversion expresa las diferencias entre archivos usando un algoritmo de diferenciación binario, que funciona exactamente igual tanto en archivos de texto (legibles por los humanos) como en archivos binarios (que no son legibles por nosotros). Ambos tipos de archivos se almacenan igualmente comprimidos en el repositorio, y las diferencias se transmiten en ambas direcciones por la red.
El costo de crear una rama o una etiqueta no necesita ser proporcional al tamaño del proyecto. Subversion crea ramas y etiquetas simplemente copiando el proyecto, utilizando un mecanismo similar a los vínculos duros. Por tanto estas operaciones llevan un tiempo pequeño y constante, y muy poco espacio en el repositorio.