Ciclo de vida de SVN
Este capítulo analiza el ciclo de vida del sistema de control de versiones.
Crear repositorio
El repositorio es un espacio centralizado que se utiliza para almacenar todos los resultados del trabajo de los desarrolladores. El repositorio no solo puede almacenar archivos, sino que también incluye el historial de cada modificación, es decir, el historial de cambios de cada archivo.
La operación Create se utiliza para crear un nuevo repositorio. En la mayoría de los casos, esta operación solo se ejecuta una vez. Cuando creas un nuevo repositorio, tu sistema de control de versiones te pedirá que proporciones cierta información para identificar el repositorio, como la ubicación de creación y el nombre del repositorio.
Checkout
La operación Checkout se utiliza para crear una copia de trabajo desde el repositorio. La copia de trabajo es el espacio de trabajo privado del desarrollador, donde puede modificar el contenido y luego enviarlo (commit) al repositorio.
Actualizar
Como su nombre indica, la operación update se utiliza para actualizar el repositorio. Esta operación sincroniza la copia de trabajo con el repositorio. Debido a que el repositorio es compartido por todo el equipo, después de que otros envíen sus cambios, tu copia de trabajo quedará desactualizada.
Supongamos que Tom y Jerry son dos desarrolladores de un proyecto. Al mismo tiempo, extrajeron (checkout) la versión más reciente del repositorio y comenzaron a trabajar. En ese momento, la copia de trabajo está totalmente sincronizada con el repositorio. Luego, Jerry completó su trabajo de manera muy eficiente y envió los cambios al repositorio.
En este momento, la copia de trabajo de Tom quedó desactualizada. La operación de actualización obtendrá los últimos cambios de Jerry desde el repositorio y actualizará la copia de trabajo de Tom.
Realizar cambios
Después del checkout, puedes realizar muchas operaciones para ejecutar cambios. La edición es la operación más común. Puedes editar archivos existentes, por ejemplo, realizar operaciones de agregar/eliminar archivos.
Puedes agregar archivos/directorios. Sin embargo, estos archivos/directorios agregados no pasan a formar parte del repositorio de inmediato, sino que se añaden a la lista de cambios pendientes. No formarán parte del repositorio hasta que se ejecute la operación commit.
De manera similar, puedes eliminar archivos/directorios. La operación de eliminación elimina el archivo de la copia de trabajo de inmediato, pero la eliminación real del archivo solo se añade a la lista de cambios pendientes. No se eliminará realmente hasta que se ejecute la operación commit.
La operación Rename permite cambiar el nombre de un archivo/directorio. La operación "Mover" se utiliza para mover archivos/directorios de un lugar a otro dentro del repositorio.
Revisar cambios
Cuando extraes (checkout) una copia de trabajo o actualizas la copia de trabajo, esta queda totalmente sincronizada con el repositorio. Pero después de realizar algunas modificaciones en la copia de trabajo, tu copia de trabajo estará más actualizada que el repositorio. Es una buena práctica revisar tus cambios antes de la operación commit.
La operación Status enumera los cambios realizados en la copia de trabajo. Como mencionamos anteriormente, cualquier modificación que hagas en la copia de trabajo forma parte de la lista de cambios pendientes. La operación Status se utiliza para ver esta lista de cambios pendientes.
La operación Status solo proporciona una lista de cambios, pero no ofrece información detallada sobre los cambios. Puedes usar la operación diff para ver los detalles de estos cambios.
Corregir errores
Supongamos que has realizado muchos cambios en la copia de trabajo, pero ahora no quieres esos cambios; en ese caso, la operación revert te ayudará.
La operación Revert restablece las modificaciones realizadas en la copia de trabajo. Puede restablecer uno o más archivos/directorios. Por supuesto, también puede restablecer toda la copia de trabajo. En este caso, la operación revert destruirá la lista de cambios pendientes y restaurará la copia de trabajo a su estado original.
Resolver conflictos
Pueden surgir conflictos al fusionar (merge). La operación Merge maneja automáticamente lo que se puede fusionar de forma segura. El resto se trata como conflictos. Por ejemplo, el archivo "hello.c" se modificó en una rama y se eliminó en otra. Esta situación requiere intervención manual. La operación Resolve se utiliza para ayudar al usuario a identificar los conflictos y decirle al repositorio cómo manejarlos.
Commit de cambios
La operación Commit se utiliza para enviar los cambios de la copia de trabajo al repositorio. Esta operación modifica el contenido del repositorio, y otros desarrolladores pueden ver estos cambios actualizando sus copias de trabajo.
Antes de confirmar (commit), debes agregar los archivos/directorios a la lista de cambios pendientes. La lista registra los cambios que se enviarán. Al hacer el commit, normalmente proporcionamos un comentario para explicar por qué se realizaron estos cambios. Este comentario también pasa a formar parte del historial del repositorio. Commit es una operación atómica, es decir, o se completa con éxito por completo o falla y revierte. El usuario nunca verá una confirmación exitosa a medias.
Otras extensiones