Tabla de contenidos
Este capítulo es una versión ligeramente modificada del mismo capítulo en el libro de Subversion. Una versión en línea del libro de Subversion está disponible aquí: http://svnbook.red-bean.com/.
Este capítulo es una introducción corta e informal a Subversion. Si usted es nuevo en el control de versiones, este capítulo es definitivamente para usted. Empezamos con una discusión de los conceptos generales de control de versiones, nos adentramos en las ideas específicas que hay tras Subversion, y mostramos algunos ejemplos sencillos del uso de Subversion.
Aún cuando los ejemplos en este capítulo muestran gente compartiendo colecciones de código fuente de programas, tenga en cuenta que Subversion puede manejar cualquier collección de archivos - no está limitado a ayudar a los programadores.
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 archivos - una jerarquía típica de archivos y directorios. Un número de clientes se conectan al repositorio, y luego leen o esriben esos archivos. Al escribir datos, el cliente hace que la información esté disponible para los otros; al leer los datos, el cliente recibe información de los demás.
¿Y ésto por qué es interesante? Por ahora, eso suena a la definición típica de un servidor de archivos típico. Y de hecho, el repositorio es una clase de servidores de archivos, pero no el habitual. Lo que hace al repositorio de Subversion especial es que recuerda todos los cambios que alguna vez se hayan escrito en él: cada cambio en cada archivo, e incluso los cambios en el propio árbol de directorios, como el añadir, borrar o reorganizar archivos y directorios.
Cuando un cliente lee datos de un repositorio, normalmente ve únicamente la última versión del árbol de archivos. Pero el cliente también tiene la capacidad de ver estados previos del sistema de archivos. Por ejemplo, un cliente puede hacer preguntas históricas, como “¿qué contenía este directorio el último miércoles?”, o “¿quién fue la última persona que cambió este archivo, y qué cambios hizo?” Esta es la clase de preguntas que forman el corazón de cualquier sistema de control de versiones: son sistemas que están diseñados para guardar y registrar los cambios a los datos a lo largo del tiempo.