Revisiones
Por Default cada vez que un usuario realiza un commit sobre un archivo, CVS genera versiones en el siguiente orden, 1.1, 1.2, 1.3, 1.4, esto puede ocasionar una falta de coordinación entre archivos comunes, ya que si un archivo
es actualizado 7 veces y otro 3 ocasiones no existe ninguna correlación entre ambos, para sobrepasar este problema se utliza lo que es llamado tag .
Un tag es un link simbólico que puede ser asignado a cualquier version de un archivo , el tag permite agrupar archivos para lograr mayor coordinacion en el desarrollo de un proyecto, a diferencia de un modulo que solo agrupa directorios, los tags son capaces de agrupar archivos en diferentes sub-directorios. Para diferenciarse de versión, un grupo de archivos que posean un tag en común son denominados release .
routers lucent.html cisco.html genericos.html
1.2 1.1
2.1 ------ 1.3 ------ 1.9 ------ 1.2 -----tag
conectividad
(Release 1.0)
2.2 1.4 1.10 1.3
2.3 1.11
|
Para agregar un Tag a lucent.html se ejecuta lo siguiente:
|
Esto agregará el tag conectividad-1_0 a lucent.html,
para verificar esta acción se puede utlizar el comando: cvs status -v lucent.html , recuerde que conectividad-1_0 es considerado un release y no una versión
Como generar una Copia de Trabajo ("Working Copy") de un Release
Para generar un "working copy" de los archivos pertenecientes a un "Release"
se utiliza el parametro -r con el comando checkout :
|
esto genera una copia de trabajo ("Working Copy") del
modulo
Internet con los archivos que pertencen al tag (release) conectividad-1_0 .
Ramificaciones
CVS permite realizar ramificaciones de un documento o directorio , de esta manera varios archivos parten del mismo truncal y pueden ser modificados en paralelo.
Para que son buenas las ramificaciones ?
Supongamos que ya se esta en la fase de produccion de un sitio de Internet y existe el Release 1.0, usted sigue modificando todos los archivos del depósito (NOTA:son archivos(revisiones) y no release(tags)), y planea crear el release 2.0 dentro de unos meses. Sin embargo, empiezan a existir quejas de sus visitantes sobre errores en el servidor de producción, se revisa el release 1.0 y se corrigen los errores. Ya existen modificaciones para el Release 2.0, ahora se deben fusionar los cambios, pero como ? Este caso es simplificado con el uso de Ramificaciones.
Uso de Ramificaciones
Al momento en el que se decida la creación del release 1.0, éste debe de ser ramificado en dos, una ramificación será exclusivamente para corregir posibles errores del release 1.0, mientras la otra ramificación continuará el modelo normal de desarrollo hacia el release 2.0.
truncal
|
| release 1.0 (tag)
| /
7.0 ------------- 7.0.2.1
| |
| |
7.1 7.0.2.2
| |
| |
7.2 7.0.2.3
| |
| |
7.3 7.0.2.4 release 2.0 (tag)
. .
. .
7.4 . . . . . . Cambios se deben fusionar
|
En la gráfica anterior se puede observar que a partir de la revision 7.0 de cierto documento se decidio integrar el release 1.0 ; a partir de este release se generaron dos ramificaciones, una sobre la que se corregirán posibles errores del documento (lado izquierdo), y otra sobre la que se continuará el desarrollo hacia 2.0 (lado derecho). Cuando se decida integrar el release 2.0, la ramificación de corrección (izquierda) será integrada al truncal (ramificación derecha). Esto ocurrirá no solo para este documento, sino para todos aquellos que formen parte del release.
Para crear una ramificación se utiliza:
|
Esto creará una ramificación basado en la version que se encuentre en la copia de trabajo ("Working Copy"), y se le asignará el nombre de osmosislatina_1.0 . Es importante saber que esta ramificación es creada en el depósito y no en la copia de trabajo ("Working Copy"), para trabajar sobre esta ramificación es necesario actualizar la copia de trabajo ("Working Copy"), esto se hace con el comando:
|
A partir del comando anterior ya se esta trabajando sobre la ramificación osmosislatina_1.0 del subdirectorio www , para corraborar esto utilize el comando status ,ejemplo:
|
despliegará información detallada sobre el archivo, uno de esos parametros es el pertencer a una ramificación (branch).
Fusionar Ramificaciones
Para fusionar una ramificación se utiliza la siguiente secuencia:
- Estando en la Copia de Trabajo ("Working Copy") de la ramificación, ejecutar el comando
osmosis# cvs update -kk -j osmosislatina_1.0 - Confirmar los cambios al depósito con:
osmosis# cvs commit -m "Se fusionaron cambios de ramificiación a osmosislatina_1.0" - NOTA: El parametero
-mdel comando anterior indica el comentario que será presnentado en el depósito, esto evita la necesidad de utilizar un editor de textos.
|
