2009-04-28 19 views
33

que tienen un conflicto fusión, usando Mercurial 1.0.2:¿Cómo resolver conflictos de fusión en Mercurial (v1.0.2)?

merging test.h 
warning: conflicts during merge. 
merging test.h failed! 
6 files updated, 0 files merged, 0 files removed, 1 files unresolved 
There are unresolved merges, you can redo the full merge using: 
    hg update -C 19 
    hg merge 18 

no puedo encontrar la manera de resolver esto. resultados de búsqueda de Google instruir a utilizar:

hg resolve 

pero por alguna razón mi Mercurial (v1.0.2) no tiene un comando de resolución:

hg: unknown command 'resolve' 

¿Cómo puedo resolver este conflicto?

+0

Creo que tiene que marcar una respuesta diferente como la correcta ... – Lipis

Respuesta

13

Válido para hg < v1.1 solamente

No hay necesidad de llamar a cualquier hg comandos. A diferencia de svn, Mercurial no rastrea archivos en conflicto. Si llama al hg status, verá que el archivo simplemente está marcado como modificado.

Simplemente arregle el archivo a mano y confirme.

+0

Parece que Mercurial movió mi copia local a test.h.orig y test.h ahora desde la otra cabeza ... ¿hay alguna? forma de evitar la creación del archivo .orig para que no se agregue accidentalmente? – lajos

+0

No estoy seguro de que sea posible, pero puede agregar * .orig a su archivo .hgignore. – avakar

+16

Si simplemente edita el archivo y luego confirma, es posible que no se reconozca como una fusión de las dos ramas, simplemente un nuevo compromiso en su trabajo. Creo que tienes que arreglar el archivo a mano y luego ** hg resolve -m test.h ** para marcar el archivo como fusionado. –

10

Se introdujeron conflictos de seguimiento en Mercurial 1.1, que es una versión más reciente que está utilizando (realmente debe actualizar, Mercurial 1.1. Fue lanzado en diciembre de 2008). En esa versión, usted obtuvo el comando resolve que funciona de manera similar a svn resolve.

Como lo recuerdo, Mercurial dejaría los marcadores de fusión (las líneas <<<< y >>>>) en su archivo cuando haya un conflicto, a menos que haya configurado un merge tool. Esto también se aplica a las versiones más nuevas: no tengo configurada la herramienta de fusión y obtengo los marcadores de combinación cuando ocurren conflictos. Luego puedo corregir manualmente el archivo y marcarlo resuelto con hg resolve.

75

para resaltar una respuesta en un comentario para Hg 1.1+:

Para Hg 1.1+ arreglar el archivo a mano y luego hacer

hg resolve -m test.h 

para marcar el archivo como fusionado.

+0

¿Debo eliminar manualmente los archivos .orig? –

+0

misma pregunta. ¿Qué hacer con los archivos .orig? –

+1

Simplemente los borro manualmente –

Cuestiones relacionadas