2012-04-11 8 views
5

haber leído Completely manual Mercurial merge, tengo tal .hgrc:de combinación manual de Mercurial no lanzar meld

[ui] 
merge = meld 

[merge-tools] 
meld.priority = 1 
meld.premerge = False 
meld.args = $local $other $base 

[merge-patterns] 
** = meld 

Sin embargo, hg merge -r REV simplemente funciona y que no entiendo lo que me falta ...

Me gustaría hacer una fusión manual para eliminar algunos de los cambios que introduce la otra rama. La otra rama tiene un conjunto de cambios que afecta a varios archivos y no quiero modificarlos todos.

Respuesta

5

Tengo dos conjeturas. O no se recogen sus configuraciones de configuración o no tiene suficiente conflicto para que Mercurial considere la fusión que necesita resolución.

Puede verificar el primero con hg showconfig - asegúrese de ver la configuración de fusión.

Si están apareciendo, quizás no haya suficiente conflicto entre los dos conjuntos de cambios que está fusionando. Incluso con el premezcla establecido en falso, todavía tiene que haber algo que requiera fusión. ¿Hay cambios reales en el mismo archivo en ambos conjuntos de cambios? Tal vez intente hg merge --tool internal:fail y luego consulte el hg resolve --list para ver qué hay allí.

+0

Ok, la configuración de mi melodía se recogió correctamente, pero parece que tienes razón sobre el hecho de que no hay suficiente conflicto. El conjunto de cambios entrante modifica algunos archivos no modificados, pensé que habría sido capaz de activar una fusión manual para eliminar algunos de estos cambios, pero parece ser imposible. –

+0

Pruebe 'hg merge --tool internal: prompt' o' hg merge --tool internal: dump'. No sé si van a abortar antes en el proceso, pero si lo hacen, ¿entonces quizás puedas invocar meld manualmente? –

+0

Gracias, en realidad, resolví mi problema modificando el conjunto de cambios entrante en una revisión mucho más temprana de mi proyecto. Eso desencadenó algunos conflictos al fusionarse, lanzó meld y tuve la oportunidad de seleccionar manualmente los cambios que quería mantener :) –

0

Estoy siguiendo sus instrucciones para usar MELD al hacer una diferencia. Entiendo esto:

hg meld file.F 
usage: 
    meld      Start with no windows open 
    meld <dir>     Start with VC browser in 'dir' 
    meld <file>    Start with VC diff of 'file' 
    meld <file> <file> [file] Start with 2 or 3 way file comparison 
    meld <dir> <dir> [dir] Start with 2 or 3 way directory comparison 

meld: error: no such option: -a 

¿De dónde viene esta opción -a?

+0

Hola, debes hacer una nueva pregunta para esto. Parece que mercurial no tiene un conjunto correcto de argumentos. –