2010-08-06 12 views
17

Mi branch2274 tenía una bifurcación por defecto. Rev. 415 fue el primer commit y comparte un ancestro con la rev. 412 en la rama predeterminada.hg trasplante falla - ¿Cómo puedo 'arreglar la fusión' como sugiere?

Branch2274 es una corrección de errores que necesita la fusión en default pronto, pero me hizo una cosa muy tonta - Me fundí en los cambios de una rama de la característica (. Al rev 418)

En términos simples, lo que necesito para deshacer lo que sea los cambios fueron introducidos por rev. 418. Parece que hay un montón de maneras para intentar esto, pero estoy luchando para conseguir cualquiera de ellos para trabajar:

colas de Mercurial intentan:

He intentado importar revoluciones 415, 416, 417, (omitiendo 418), 421, 428 en una cola de parches para poder aplicarlo a la versión 425.

Problema: tortoisehg solo me permitirá importar las revoluciones 428, 421 pero la importación de 417 está atenuada pero la importación de 418 solo me da el error "abortar: no se puede importar la revisión de fusión 418"

intento de trasplante:

patching file Portal/Instructor/Login.aspx.vb 
Hunk #1 FAILED at 18 
1 out of 1 hunks FAILED -- saving rejects to file Portal/Instructor/Login.aspx.vb.rej 
applying 66b6b089ee01 
abort: Fix up the merge and run hg transplant --continue 
patch failed to apply 

[command interrupted] 

Login.aspx.vb se ha cambiado por defecto y entiendo por qué la combinación ha fallado.

¿Cómo 'arreglo' la fusión?

Alternativamente, ¿hay alguna manera más sencilla de tomar rev. 418 y decirle a mercurial deshacer los cambios que trajo con un nuevo compromiso en caso2274?

+0

¿Qué visualizador gráfico es ese? – Mizipzor

+1

Está construido en TortoiseHG 1.1 http://tortoisehg.bitbucket.org/download/index.html –

Respuesta

18

A fin de no dejar una pregunta sin contestar (!), Logré resolver esto y la respuesta final es que no hay una manera simple de resolverlo automáticamente. El trasplante trata de parches, diferencias entre dos archivos pero no tiene en cuenta el ancestro común de los dos archivos, por lo que se esfuerza por saber qué hacer cuando dos personas han cambiado un archivo en el mismo lugar.

La solución es cargar el archivo en su editor de texto y cargar el archivo .rej que enumera las partes fallidas del parche. Solo tuve que poner mis adiciones en un lugar sensato en el archivo de código.

de reproducción:

hg transplant --continue 

me ..allowed para aplicar los otros parches.

Si a alguien le importa pasar algún tiempo ampliando esta respuesta con un poco de información o algunos enlaces relevantes, entonces la respuesta es suya.

+1

No puedo ayudar, pero estoy en la misma posición que tú. Otra opción que puede considerar es crear un parche. Admito plenamente, no sé muy bien, ya que me estoy aprendiendo a mí mismo, pero en mis pruebas, tratando de encontrar cómo podría "seleccionar" un conjunto de cambios de una rama y fusionarlo con otro, descubrí que Fácilmente podría simplemente crear un archivo de parche del conjunto de cambios que quería, y luego importar esa página a mi directorio de trabajo. – chrismay

+0

@Neil: Amigo, has salvado mi vida;] –

Cuestiones relacionadas