2011-04-13 8 views
8

Tengo un proyecto que se ha ramificado en algún momento. Ambas ramas han tenido una gran cantidad de compromisos desde la división, y quiero fusionarlos en uno. Simplemente fusionar las dos cabezas no es suficiente porque tiene demasiados conflictos, y la rama fusionada también es inestable y no funcional.La manera más fácil de realizar la fusión incremental en mercurial

Por lo tanto, quiero fusionar incrementalmente las dos ramas. Por incremental quiero decir que tomo la punta de una de las ramas y aplico los cambios de la otra de a una por vez. Probando cada fusión, y continuando si todo va bien.

¿Cuál es la forma más fácil de hacerlo con mercurial?

Respuesta

6

Usted mismo ha esbozado una estrategia. Supongamos que tiene dos cabezas, llamadas headA y headB. hg up -r headB en una de las dos cabezas, luego use hg merge -r X repetidamente, donde X es una revisión a lo largo de la otra línea de desarrollo.

Puede usar hg log -r 'ancestor(headA,headB)::headA' para obtener una lista de buenos candidatos para estas fusiones (dependiendo de la topología general).

0

Puede usar hg transplant para extraer conjuntos de cambios específicos en una bifurcación.

+2

El inconveniente aquí es que termina con el mismo cambio en su repositorio dos veces con dos hashids diferentes. La fusión siempre es preferible al trasplante cuando es posible. –

Cuestiones relacionadas