["SpanishTutorial"] - compartiendo cambios con otra persona

En SpanishTutorialShareChange aprendimos cómo propagar un ChangeSet desde un repositorio hacia otro.

["Mercurial"] provee varias maneras de compartir cambios entre personas, pero una de las más comunes es a través de e-mail.

Después de haber hecho un ["Commit"] de un cambio, podemos exportarlo (["Export"]) a un fichero, y enviar por e-mail el fichero como un adjunto a cualquier persona.

Para exportar un cambio, se usa el comando export. Debemos indicar un ["Tag"], un número de revisión (RevisionNumber) o un identificador de ChangeSet (ChangeSetID) para decirle a ["Mercurial"] lo que queremos exportar. En nuestro caso, queremos exportar el ["Tip"]. Por defecto, el comando ["Export"] simplemente muestra el parche, por eso redireccionaremos la salida hacia un fichero.

En este punto, deberíamos estar todavía en el directorio hola-mio-compartido.

 $ hg export tip > /tmp/my-patch
 $ cat /tmp/my-patch
 # HG changeset patch
 # User bos@camp4.serpentine.com
 # Node ID da99cce05957f7a62b74d345fd55365dc33109f0
 # Parent  bd2fb7137c85cd5e6b04db4c72a45699e0d90ea9

 Se expresa en inglés y con júbilo la existencia de Mercurial

 diff -r bd2fb7137c85 -r da99cce05957 hello.c
 --- a/hello.c   Wed Jun 29 19:04:20 2005
 +++ b/hello.c   Wed Jun 29 19:58:37 2005
 @@ -12,5 +12,6 @@
  int main(int argc, char **argv)
  {
      printf("hello, world!\n");
 +    printf("sure am glad I'm using Mercurial!\n");
      return 0;
  }

Este fichero es un PatchFile en formato UnifiedDiff (diff unificado), con alguna información extra que le dice a ["Mercurial"] como importarlo (["Import"]).

Cuando el destinatario recibe nuestro e-mail, deberá guardar el adjunto y usar el comando import para importar el ChangeSet hacia su repositorio.

Ahora nos pondremos en el lugar del destinatario, y aprenderemos como fusionar (["Merge"]) un cambio, en SpanishTutorialMerge.