Estrategias de Control de Versiones
Estrategias de Control de Versiones
Estrategias de Control de Versiones
Software
Estrategias de Control de Versiones
Agenda
▪ Qué son CVS?
▪ Cómo funcionan?
▪ Mejores Prácticas.
▪ Estrategias de Control de Versiones.
▪ Integración Continua.
Que son CVS?
Un sistema de control de versiones sirve para:
▪ Facilitar el trabajo simultáneo en un mismo proyecto.
▪ Permite a una persona usar múltiples computadoras para trabajar en un proyecto, por
lo que es valioso incluso si está trabajando solo.
▪ El control de versiones integra el trabajo realizado simultáneamente por diferentes
miembros del equipo.
▪ El control de versiones da acceso a versiones históricas de su proyecto.
▪ Puede deshacer ediciones específicas sin perder todo el trabajo
▪ Para cualquier archivo o parte de un archivo, se puede determinar cuándo, por qué y
quién lo editó.
Evolución
Tipos de Control de Versiones
Centralizados Distribuidos
Centralizados
Distribuidos
Cómo funciona?
• Casi todas las operaciones son locales.
• La integridad de los datos es fundamental, por ello todas las operaciones son confirmadas
con un checksum, esto quiere decir que es imposible realizar algún cambio y que el
controlador de versiones no lo detecte. Esto garantiza que no exista la posibilidad de perder
información o corrupción de la información sin que el controlador de versiones lo detecte.
Cómo funciona?
• Tiene tres estados principales en los que se pueden encontrar tus archivos:
• confirmado (committed) - los datos están almacenados de manera segura en la base de
datos local.
• modificado (modified) - archivo modificado pero todavía no confirmado en la base de
datos.
• preparado (staged) - archivo marcado como modificado en la versión actual para que
vaya en la próxima confirmación
Mejores Prácticas
▪ Updates - Siempre haz update antes de hacer cualquier cambio.
▪ Commits – Nunca hagas commit de trabajos sin terminar.
▪ Comentarios – Todos los commit deben tener un comentario de valor.
▪ Estructura de un proyecto en SCV – El repositorio debe tener todo lo necesario
para que tu proyecto funcione
▪ Conflictos – Analízalos con calma y una vez resueltos comenta el código que
cambio por el conflicto.
Estrategias de control de versiones
Las estrategias de control de versiones (branching) son un conjunto de reglas y
convenciones que estipulan:
▪ Cuando un desarrollador debería ramificar.
▪ De qué rama deberían ramificar
▪ Cuando deberían fusionar
▪ ¿Y a qué rama deberían fusionar?
Estrategias de control de versiones
Para escoger la estrategia de control de versiones adecuada debemos tomar en
cuenta:
▪ Empresa
▪ Proyecto
▪ Equipo
▪ Despliegue
Estrategia Mainline Branch
Solo hay una rama eterna y canónica:
el maestro .
Para la mayoría de los propósitos, la rama
maestra se considera estable . En otras
palabras, si revisa la rama maestra, puede
esperar que:
▪ Se basa en todas las plataformas / objetivos
compatibles.
▪ Todas las pruebas unitarias pasan.
▪ Una "ejecución estándar" del software funciona
(por ejemplo, si se trata de una aplicación GUI,
debería poder iniciarla y realizar algunas
operaciones básicas).
Develop