2011-12-15 9 views
9

Normalmente, Mercurial abortar si tengo una copia de trabajo sucio cuando intento importar un parche:¿Puedo importar un parche sin tocar el directorio de trabajo?

$ hg import x.patch 
abort: outstanding uncommitted changes 

¿Es posible importar de todos modos?

+0

Para aquellos que se preguntan qué acaba de pasar ... :-) Respondí la [misma pregunta en la lista de correo] (http://mercurial.markmail.org/thread/pdzc5jada7exbk66) y pensé que lo intentaría " importando "la pregunta y respuesta aquí. En comparación con la lista de correo, podemos reformular las cosas aquí para que tengamos una pregunta clara y una respuesta clara. Eso podría salvarnos una pregunta más tarde. Por supuesto, es un doble trabajo "publicar" cosas así y realmente no sé si vale la pena. –

+0

Creo que es una buena idea. Ya he tenido este problema y creo que otros lo harán, ya que SO está bien referenciado en el motor de búsqueda, ¡la respuesta estará disponible para la mayor cantidad de gente posible! – krtek

+0

@krtek: gracias por el comentario. Me sentí un poco raro escribir y responder una pregunta como esa :-) –

Respuesta

10

Con Mercurial 1.9, puede usar hg import --bypass para aplicar un parche sin tocar la copia de trabajo. El parche se aplicará en la revisión principal de copia de trabajo por defecto. Use la bandera --exact para aplicar el parche en el conjunto de cambios mencionado en el encabezado del parche.

1

Si está utilizando TortoiseHg, puede usar Repository > Import, luego especifique que el parche debe importarse a Shelf y finalmente en el estante, mueva los cambios al depósito sucio de trabajo como lo haría con cualquier otro parche de estante.

Me encantaría poder hacer clic derecho> "copiar parche" en un repositorio fuente, luego en un repositorio clonado, hacer clic derecho y "pegar parche", con suerte esta característica se implementará en una versión futura.

Cuestiones relacionadas