Trabajar con ramas en CVS

De ChuWiki

CVS nos permite trabajar con ramas. Esto quiere decir que podemos trabajar a la vez sobre dos versiones distintas de nuestro código.

Cuando vamos trabajando con CVS, las versiones suelen empezar con la 1.0 y luego van incrementando el segundo índice, teniendo así las versiones 1.1, 1.2, 1.3, etc.

En un momento dado, podemos tener una versión estable, que nos interesa etiquetar, de forma que luego la tengamos fácilmente accesible. Supongamos que la última es la versión en CVS es la 1.3 que es la estable y la que tenemos en nuestro directorio de trabajo. Podemos ponerle la etiqueta así

cvs tag ESTABLE

Esto marcará la versión actual con la etiqueta ESTABLE. Esta versión la entregamos al cliente y seguimos trabajando de forma normal. Vamos metiendo nuevas versiones 1.4, 1.5, etc.

Ahora viene el cliente y nos dice que ha encontrado un error. Vamos a corregirlo, para ello necesitamos obtener la versión estable. Asegurándonos de que en nuestro directorio de trabajo tenemos todo bien guardadito en CVS, vamos a la versión ESTABLE de esta forma

cvs update -rESTABLE

Ahora vamoa a crear una rama, la llamaremos RAMA_ESTABLE. Para ello, ejecutamos el comando

cvs tag -b RAMA_ESTABLE

Bien, ahora en CVS se acaba de crear una versión 1.3.0.1 con la etiqueta RAMA_ESTABLE. Podemos trabajar en ella. Para ello, hay que sacarla a nuestro directorio de trabajo así

cvs update -rRAMA_ESTABLE

Listo. Todo lo que trabajemos ahora y metamos en CVS ira sobre la versión 1.3.0.1. Los números serán 1.3.0.2, 1.3.0.3, etc.

Una vez corregido el error y entragado el ejecutable al cliente, podemos querer corregir este mismo error en nuestra rama principal, en la que habíamos seguido trabajando. Para ello, vamos a la rama principal con

cvs update -rHEAD

HEAD es la etiqueta que pone CVS por defecto para la rama principal. Ahora debemos juntar los cambios de la RAMA_ESTABLE con el comando

cvs update -jRAMA_ESTABLE

Esto "mezclará" los ficheros de ambas ramas en nuestro directorio de trabajo. Debemos estar pendiente del log de salida para ver si hace "merging" de dos versiones. Esto quiere decir que CVS no ha sido capaz de mezclar correctamente las dos versiones del fichero, así que nos pide que lo revisemos a mano. Debemos editar el fichero, en el que encontraremos duplicadas las líneas que CVS no ha sabido resolver, cada copia con una de las versiones. Debemos eliminar la que no vale y dejar la otra.

Una vez resueltos todos los conflictos, bastará meter en CVS normalmente. Los cambios quedarán incorporados a la rama principal.

cvs commit -m"Corregidos errores"

Enlaces externos[editar]