hg unshelve <nombre> sirve para sacar un changeset de un shelve. Si hay cambios pendientes y se genera un conflicto, terminaremos con dos cabezas en la rama actual, lo cual es un embrollo.

Las dos salidas posibles son:

  • Llevar a cabo el merge y continuar el unshelve (hg unshelve --continue)
  • Abortar el unshelve (hg unshelve --abort), hacer lo que sea con los cambios pendientes, y reiniciar el unshelve.

SourceTree no tiene un comando gráfico para abortar el unshelve. O al menos no soy capaz de encontrarlo en la interfaz.

Sacar diff de un shelve

No encuentro, en SourceTree, la forma de exportar el diff de un shelve. Pero con la terminal es fácil.

hg shelve --patch <nombre> muestra el diff de ese shelve concreto. Si quieres sacarlo a un fichero, simplemente se redirecciona: hg shelve --patch <nombre> > fichero.