Pregunta

Un escenario común cuando se usa el control de origen es tener una rama de desarrollo junto con ramas de versión versionadas. Usamos CVS, con HEAD como la rama de desarrollo, y una rama llamada, por ejemplo, versión 6-2 para la versión actual de un producto.

El desarrollo de nuevas características solo se aplica a la rama de desarrollo, pero a veces las correcciones de errores deben verificarse tanto en la rama de desarrollo como en la rama de la versión actual. Esto puede ser bastante tedioso a veces, así que estoy buscando formas prácticas para lograrlo.

Cuando un archivo que se debe comprometer está sincronizado en las dos ramas, en particular estoy buscando un compromiso rápido de "cotización a estas ramas" solución.

(Utilizamos CVS como nuestro sistema de control de fuente, por lo que cualquier respuesta específica de CVS es agradable. Sin embargo, también es interesante ver si otros sistemas de control de fuente pueden ofrecer una mejor manera.  En el lado del cliente, usamos Eclipse, por lo que las soluciones de Eclipse son buenas. Pero si tiene una solución que no sea de Eclipse, eso también está bien.)

¿Fue útil?

Solución

Aplique su corrección a la rama de lanzamiento más antigua requerida. Luego fusione el cambio a la siguiente rama de la versión y así sucesivamente hasta que se fusione desde la última rama de la versión a la HEAD.

Diga que la versión más antigua de su producto es 1.0 y que también tiene versiones 1.1 y 1.5. Nuevas características para la próxima versión se están agregando a la HEAD. Si se encuentra un error en 1.0, aplique la corrección a la rama 1.0. Fusionar de 1.0 a la rama 1.1. Combine de 1.1 a la rama 1.5, y finalmente fusione de la rama 1.5 a la CABEZA.

Combinar de una rama a otra es mejor que aplicar el arreglo manualmente a cada rama.

Con CVS, debes realizar un seguimiento manual de las versiones que se fusionan, para que no incluyas las mismas revisiones cuando hagas tu próxima combinación.

Si cambia a utilizar Subversion, la combinación de una rama a otra es más fácil. La herramienta de subversión de Eclipse hará un seguimiento de las revisiones que ha fusionado anteriormente, simplificando enormemente la tarea de realizar combinaciones repetidas entre dos ramas.

Cambiar a Subversion desde CVS es fácil (ish). No serás el primero en hacer tal movimiento.

Otros consejos

Como awals dijo, es mejor fusionarse entre ramas. Para elegir una combinación, el método descrito en Control de versión pragmático usar CVS es muy bueno:

En la rama - etiqueta ( PRE_FOO ) antes del cambio, realice los cambios y confirme, marque la etiqueta después del cambio ( POST_FOO ). Luego, en el tronco, fusionar usando las etiquetas:

cvs up -j PRE_FOO -j POST_FOO

La fusión entre sucursales es mucho más fácil y segura en SVN, y es trivial convertir todo tu historial CVS a SVN. Consulta cvs2svn . Debe usar SVN 1.5 o, con versiones anteriores de SVN, svnmerge .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top