Differences between revisions 4 and 5
Revision 4 as of 2005-08-26 01:22:34
Size: 2978
Editor: waste
Comment:
Revision 5 as of 2005-08-26 01:31:33
Size: 3006
Editor: waste
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== [SpanishTutorial] - fusionando cambios == == SpanishTutorial - fusionando cambios ==
Line 11: Line 11:
 $ hg clone hola-mio hola-mio-desc   $ hg clone hola-mio hola-mio-desc
Line 17: Line 18:
 $ vi hello.c   $ vi hello.c
Line 23: Line 25:
Line 28: Line 31:
Line 33: Line 37:
Line 40: Line 45:
 pulling from ../hola-mio-nueva-salida/
 searching for changes
 adding changesets
 adding manifests
adding file revisions
 modified 1 files, added 1 changesets and 1 new revisions
 (run 'hg update' to get a working copy)
  pulling from ../hola-mio-nueva-salida/
  searching for changes
  adding changesets
  adding manifests
 
adding file revisions
  modified 1 files, added 1 changesets and 1 new revisions
  (run 'hg update' to get a working copy)
Line 52: Line 58:
 this update spans a branch affecting the following files:
  hello.c (resolve)
 aborting update spanning branches!
 (use update -m to perform a branch merge)
  this update spans a branch affecting the following files:
   hello.c (resolve)
  aborting update spanning branches!
  (use update -m to perform a branch merge)
Line 63: Line 70:
 merging hello.c   merging hello.c

SpanishTutorial - fusionando cambios

En SpanishTutorialExport aprendimos como compartir un cambio con otra persona.

Ahora nos pondremos en el lugar de la otra persona, suponiendo que hemos recibido un cambio que queremos fusionar con nuestro código.

Primero debemos crear un lugar para fusionar. Lo que hacemos es clonar de nuevo el repositorio hola-mio:

 $ cd ..
  $ hg clone hola-mio hola-mio-desc

Ahora vamos a darle a hello.c una descripción en la parte de comentarios del código.

 $ cd hola-mio-desc
  $ vi hello.c

Cambiaremos la segunda línea de ésto:

 * hello.c

To this:

 * hello.c - hello, world

Guardamos y cerramos el editor, y hacemos un ["Commit"] de nuestros cambios. Esta vez ahorraremos un poco de tiempo usando la opción -m del comando commit, para librarnos de que arranque otra vez el editor para escribir el comentario:

 $ hg commit -m'Añadida descripción en hello.c'

En este punto hemos hecho un cambio a hello.c en el repositorio hola-mio-nueva-salida, y otro cambio a hola.c en el repositorio hola-mio-desc. ¿Habrá algún problema cuando querramos propagar los cambios de un repositorio hacia el otro?

La cosa funcionará perfectamente. Mientras aún estamos en hola-mio-desc, vamos a propagar los cambios desde hola-mio-nueva-salida y veremos qué ocurre:

 $ hg pull ../hola-mio-nueva-salida
  pulling from ../hola-mio-nueva-salida/
  searching for changes
  adding changesets
  adding manifests
  adding file revisions
  modified 1 files, added 1 changesets and 1 new revisions
  (run 'hg update' to get a working copy)

¡Esto se parece a la salida del comando pull en SpanishTutorialShareChange! Así que todo lo que tenemos que hacer ahora es una actualización (["Update"]) ¿de acuerdo?

 $ hg update
  this update spans a branch affecting the following files:
   hello.c (resolve)
  aborting update spanning branches!
  (use update -m to perform a branch merge)

Algo ha ocurrido. ["Mercurial"] nos está diciendo que debemos fusionar (["Merge"]) los cambios hechos en cada repositorio. Parece que suena difícil ¿no?

Realmente es muy fácil. Simplemente tenemos que seguir las instrucciones indicadas:

 $ hg update -m
  merging hello.c

Y ya está todo hecho; ["Mercurial"] fue capaz de manejar el fusionado de código de manera completamente automática. Si ahora miramos en hello.c, veremos que contieneambos cambios, tanto de hola-mio-nueva-salida como los cambios de hola-mio-desc.

La mayor parte del tiempo, cuando se está trabajando con cambios hechos por otra persona, esta es laúnica clase de fusión de código que se necesitará realizar.

Continuemos y aprendamos ahora como actuar ante situaciones en donde se han realizado cambios que presentan conflictos, en SpanishTutorialConflict.

SpanishTutorialMerge (last edited 2010-05-23 17:00:16 by RobertoRodriguez)