Pregunta

Tengo un archivo en RTC (llámelo foo.c) que modifiqué y registré en un conjunto de cambios (CS1) junto con algunos otros cambios.Luego modifiqué ese archivo nuevamente y lo verifiqué en un conjunto de cambios diferente (CS2) junto con otros cambios.

Ahora me encontré con un caso en el que quiero entregar CS2 a una secuencia, pero RTC me está dando un error que indica que entregar eso crearía una brecha en la secuencia (debido al cambio en CS1).No quiero entregar todo CS1 todavía, porque contiene algunos cambios que aún no deberían estar en una compilación.El cambio original a foo.c en CS1 fue una remoción menor de un #include, y no afecta nada más.

¿Hay alguna manera de resolver esa brecha?

Veo algunas cosas en la documentación de RTC sobre la aplicación de parches, pero no entiendo a dónde va con eso.
¿Hay alguna manera de dividir un conjunto de cambios en varios conjuntos de cambios, lo que me permitiría entregar solo un archivo?

¿Fue útil?

Solución

Actualización desde 2012 (y la "solución alternativa" original de entregar todo y revertir lo que no desea):

Ver este hilo:

En RTC 4.0.5 brindamos soporte adicional al intentar aceptar conjuntos de cambios que tienen un vacío (que a menudo se encuentra al intentar realizar correcciones).

En un resumen muy breve de la función, cuando acepta conjuntos de cambios con un espacio, ahora puede seguir un flujo de trabajo de espacio que acepta un conjunto de cambios a la vez y, para los conjuntos de cambios que contienen espacios, crea un nuevo conjunto de cambios (con ayuda trazabilidad), que contiene los cambios equivalentes.
Esto significa que los usuarios no tendrán que aceptar los conjuntos de cambios "como un parche".

La aplicación de conjuntos de cambios como parche tiene limitaciones en comparación con el nuevo flujo de trabajo.
Esta característica se resume en el Página RTC 4.0.5 'Nuevo y digno de mención'.

A continuación se muestran algunos vídeos que muestran esta característica:

Eso es el Localizar conjuntos de cambios característica:

https://jazz.net/downloads/pages/rational-team-concert/4.0.5/4.0.5/images/gapeditor.png


En RTC 5.0 agregamos una función de "llenar el vacío" donde los conjuntos de cambios que llenan el vacío se muestran al usuario, permitiéndole aceptar todos los conjuntos de cambios o continuar con el flujo de trabajo del vacío que estaba disponible en RTC 4.0.5. .

Esta característica se resume en el Página RTC 5.0 'Nuevo y digno de mención':

Las clases que participan para llenar el vacío incluyen (disponibles en RTC 5.0):

client side: IWorkspaceConnection.findChangeSetsToAcceptToFillGap(...) 
server side: IScmQueryService.findChangeSetsToAcceptToFillGap(...) 

Ambas características se explican en detalle en el "Manejo mejorado de brechas para SCM" artículo.

https://jazz.net/downloads/pages/rational-team-concert/5.0/5.0/images/missing-change-sets-dialog.png


Respuesta original (2012)

¿Hay alguna manera de dividir un conjunto de cambios?

No lo creo, leyendo el página de manual del conjunto de cambios:

Un archivo o carpeta de un componente no puede formar parte de más de un conjunto de cambios activo.
Cuando un archivo o carpeta se incluye en un conjunto de cambios activo, todos los cambios que se le realicen pasan a formar parte de ese conjunto de cambios, independientemente de que el conjunto de cambios sea actual o no, y Los cambios en ese archivo o carpeta no se pueden registrar explícitamente en un nuevo conjunto de cambios hasta que se complete el conjunto de cambios activo que lo incluye..

Tener foo.c en CS1 y CS2 significa que CS1 ha sido "completado" (congelado, en esencia), y sería malo intentar dividirlo.

La solución de parche significa:

  • cancelando CS1
  • agregando el cambio adicional a foo.c a CS2
  • rehacer los cambios de CS1

Ver "¿Cómo elimino un conjunto de cambios de una secuencia?"

Historia 149483 se trata de mejorar ese engorroso flujo de trabajo, y se está mejorando la detección de brechas (Mejora 24822)


El OP timwoj concluye:

Terminé entregándolo todo y luego revirtiendo el que no quería..

Otros consejos

Problema:CS1 cambia foo.c, CS2 cambia más foo.c.Sólo desea entregar CS2, pero RTC le dice que eso introduciría lagunas.

Solución:Cree un parche desde CS2 y suspenda CS1 y CS2.Luego aplique el parche, combínelo en su espacio de trabajo y registre los cambios que crearán otro conjunto de cambios, CS3, idéntico a CS2 pero sin dependencia de CS1.Ahora puedes entregar CS3.

Después de entregar CS3, puede descartar CS2 y reanudar CS1, lo que requerirá que se fusione con CS3.

Entonces debería estar en el estado en que CS1 se basa en CS3 y puede elegir si desea entregar CS1 o no en el futuro.

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