En los viejos tiempos de Subversion, a veces obtengo un nuevo archivo de uno existente usando svn copy
. Luego, si algo cambiaba en las secciones que tenían en común, aún podía usar svn merge
para actualizar la versión derivada.En Mercurial, ¿puedo aplicar cambios de un archivo a otro en la misma rama?
Para usar el ejemplo de hginit.com, diga que la receta "guac" ya existe, y quiero crear una "superguac" que incluya instrucciones sobre cómo servir guacamole a 1000 entusiastas del fútbol. Usando el proceso que acabo de describir, pude:
svn cp guac superguac
svn ci -m "Created superguac by copying guac"
(edit superguac)
svn ci -m "Added instructions for serving 1000 raving soccer fans to superguac"
(edit guac)
svn ci -m "Fixed a typo in guac"
svn merge -r3:4 guac superguac
y por lo tanto la corrección de error se aplicaría a superguac.
Mercurial proporciona un comando hg copy
que marca un archivo como una copia del original, pero no estoy seguro de que la estructura del repositorio sea compatible con un flujo de trabajo similar. Aquí está el mismo ejemplo, y yo cuidadosamente única editar un único archivo en el comprometo quiero utilizar en la combinación:
hg cp guac superguac
hg ci -m "Created superguac by copying guac"
(edit superguac)
hg ci -m "Added instructions for serving 1000 raving soccer fans to superguac"
(edit guac)
hg ci -m "Fixed a typo in guac"
ahora quiero aplicar el cambio en el guacamole a superguac. ¿Es eso posible? Si es así, ¿cuál es el comando correcto? ¿Hay un flujo de trabajo diferente en Mercurial que logra los mismos resultados (limitado a una sola rama)?
reconozco este ejemplo en particular es bastante fácil de refundición utilizando ramas y Mercurial resuelve esa situación trivial. Desafortunadamente, en mi aplicación real necesito ambos archivos en la misma rama, de ahí mi dificultad ... – Stephen
Después de pensar en esto más (y probar ambas soluciones en mi repositorio), creo que ambas respuestas tienen sus méritos. Si hubiera sabido la respuesta de Rudi anteriormente, todas las modificaciones que se apliquen a ambos archivos podrían usar su método. Desafortunadamente, desde que edité ambos archivos después de la copia, la solución de Ry4an me proporciona una solución alternativa. ¡Gracias a ambos! – Stephen