Tengo la siguiente situación de sucursales en un repositorio de Perforce: Hay una línea principal "troncal" y dos ramas de publicación "1.0" y "1.1". Un "cliente" de sucursal con cambios específicos del cliente se ha ramificado fuera de la sucursal 1.0. Ahora el cliente quiere pasar a la versión 1.1. ¿Cómo puedo fusionar la rama 1.1 en la rama de clientes? Los cambios específicos del cliente deben permanecer "en la parte superior" de 1.1.Perforce: ¿Cómo se integra en varias ramas?
Aquí es un diagrama de un archivo afectado:
1.1 -(1)---(2)---(3)
/ \ \
/ \ \
trunk 100--(101)-(102)--103---104---105---106---107
\
\
1.0 ---1-----2--...
\
\
customer ---1-----2----*3*
La versión actual del archivo que estoy viendo es la revisión 3 en la rama del cliente.
Si elijo integrar la rama "1.1" con el objetivo "cliente", esperaba encontrar el ancestro común de ambos (revisión 100 en la línea principal) y todas las revisiones desde allí hasta la punta de la rama 1.1 son fusionados (los que están entre paréntesis).
En cambio, Perforce solo ofrece fusionar las revisiones 1 a 3 de la rama 1.1, que falla porque se pierden los cambios necesarios que ocurrieron antes en la línea principal.
¿Cómo puedo convencer a Perforce de que haga esto sin tener que mirar cada archivo manualmente y seleccionar las revisiones para fusionar? Tal vez la estrategia de ramificación no es adecuada? ¿Que más deberia hacer?
Si intento "p4 integ -b 1.1_to_customer" aparece "no se puede integrar desde ... sin -i bandera" para cada archivo que tenga cambios en la rama del cliente. Si agrego "-i", la fusión falla porque solo las revisiones en la rama 1.1 están integradas y no las de la troncal. – hfs
Perforce no sabe que los cambios 101 y los cambios 102 son esenciales para lo que sucedió en la rama 1.1. Por lo tanto, primero debe integrar el tronco hasta 102 en el cliente antes de integrar 1.1. –
Sí, eso es lo que hice al final: tenía dos etiquetas en la línea principal que marcaba las bases de las ramas de 1.0 y 1.1. Primero fusioné el "tronco" entre estas etiquetas, resolví todo, luego fusioné 1.1 sobre eso y resolví nuevamente.Eso funcionó. – hfs