Caso claro de UCM: Hiereachy de flujos en un proyecto frente a múltiples proyectos

Tenemos un proyecto y estamos a punto de agregar una nueva pieza de funcionalidad a una base de código estable sin que se produzcan cambios importantes, salvo la reparación de defectos. El plan no consiste en desarrollar la nueva característica por separado durante un time (probablemente un mes) realizando construcciones y testings intermedias y, a medida que la function finaliza y la calidad es aceptable, fusiona el código de la nueva function en la twig principal.

La pregunta es cuál de los siguientes dos escenarios es mejor en términos de Clear Case:

  1. Crear un nuevo proyecto basado en una línea de base en la secuencia de integración del proyecto actual, desarrollando la nueva característica en este proyecto separado con entregas intermedias a la secuencia de integración del nuevo proyecto y compilation a partir de la secuencia de integración. Y, finalmente, entrega los cambios de la secuencia de integración del nuevo proyecto al proyecto principal (a dev o int).

  2. Usar una jerarquía de flujos en el proyecto principal: crear una secuencia secundaria de la secuencia de integración en el proyecto principal (vamos a llamarlo temp_int) y una secuencia secundaria de temp_int (vamos a llamarlo temp_dev). Desarrollar la nueva característica en temp_dev, con entregas periódicas a temp_int y comstackciones desde temp_int y luego entregando la nueva característica de temp_int a la stream de integración principal.

La cuestión de si necesita crear un nuevo proyecto o hacer una subsecuencia es clásica.

En mi opinión, ambas opciones son bastante equivalentes.

La única diferencia significativa es la base de la base que podrá elegir al crear una nueva secuencia para este esfuerzo de desarrollo en particular:

  • para una subflujo, solo podrá seleccionar una línea de base producida en la secuencia principal.
  • para la transmisión principal de un nuevo proyecto, podrá seleccionar cualquier reference que desee.

Aparte de eso:

  • un nuevo proyecto ofrece un nuevo espacio para aislar varias secuencias en un contenedor coherente. Pero si necesita include algunas evoluciones menores del código estable realizado durante el desarrollo de nuevas características, las entregas estarán en order.
  • una subflujo permite visualizar claramente el cliente final una vez que el desarrollo ha finalizado: la entrega será una operación natural para fusionarse con la secuencia padre. Además, la rebase periódica es posible desde la secuencia principal hasta la secuencia de desarrollo para mantenerla actualizada.

Por lo tanto, si solo tiene una transmisión con una entrega clara, la opción de transmisión secundaria es suficiente.
Si su desarrollo termina siendo más complicado de lo previsto, un proyecto es más agradable.