¿Cómo escribir un empuje inteligente para mercurial, uno que tire y se fusione antes de empujar?
Frecuentes
Visto 129 veces
2
Estoy buscando hacer algún tipo de alias para hg push
por lo que automáticamente hará un hg pull
, hg merge
, hg commit
y hg push
por sí mismo.
Obviamente, si algo sale mal, como conflictos en la fusión, se detendrá.
Hasta ahora escribí esto pero no funciona cuando no tienes nada que sacar:
hg pull -u && hg merge && hg ci -m "merge" && hg push
Cuando no tenga nada para fusionar, fallará con:
abort: there is nothing to merge
1 Respuestas
2
Una extensión incorporada llamada ha podido recuperar hace todo eso pero empuja:
En el caso más simple, hg fetch actúa como
hg pull -u
— extrae los cambios de un repositorio remoto a uno local y actualiza el directorio de trabajo. (Esto es como el comando "actualizar" que se encuentra en Subversion o CVS).Si es necesario fusionar los cambios extraídos, la extensión de búsqueda intenta una
hg merge
seguido de unahg commit
.
Habilite la extensión, luego haga:
$ hg fetch && hg push
Sin embargo, considere hacer rebase (fusión de avance rápido) en lugar de una fusión regular. Esto ayuda a mantener el linaje limpio de las confirmaciones interminables de "fusión", ya que es tan seguro como una fusión regular si --keep
los conjuntos de cambios originales.
De hecho, mi flujo de trabajo habitual cuando trabajo en una sola tarea es así:
# edit some files, test
$ hg commit
# edit some more files, test
$ hg commit
$ hg pull --rebase
$ hg push
Respondido el 20 de junio de 20 a las 10:06
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas mercurial or haz tu propia pregunta.