Differences between revisions 1 and 2
Revision 1 as of 2005-08-26 00:58:36
Size: 4412
Editor: waste
Comment:
Revision 2 as of 2005-08-26 01:23:09
Size: 4386
Editor: waste
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== ["SpanishTutorial"] - haciendo nuestros primeros cambios == == [SpanishTutorial] - haciendo nuestros primeros cambios ==
Line 3: Line 3:
Nos encontramos dentro de nuestro repositorio ''hola-mio'', el cual clonamos en SpanishTutorialClone. Nos encontramos dentro de nuestro repositorio {{{hola-mio}}}, el cual clonamos en SpanishTutorialClone.
Line 7: Line 7:
Nuestro objetivo inicial será que el programa "hello, world" ("hola, mundo") imprima otra línea de salida. Primero clonaremos nuestro repositorio ''hola-mio''. Nuestro objetivo inicial será que el programa "hello, world" ("hola, mundo") imprima otra línea de salida. Primero clonaremos nuestro repositorio {{{hola-mio}}}.
Line 13: Line 13:
Line 24: Line 23:

El contenido de ''hello.c'' se parece a lo siguiente:
El contenido de {{{hello.c}}} se parece a lo siguiente:
Line 36: Line 34:
}}}

{{{
Line 40: Line 35:
}}}

{{{
Line 49: Line 41:

Editamos ''main'' para que imprima una línea de salida extra:
Editamos {{{main}}} para que imprima una línea de salida extra:
Line 60: Line 51:
Una vez terminado, cerramos el {{{vi}}} (o nuestro editor favorito) y hemos acabado. Eso es todo. Con esta edición estamos listos para crear un ChangeSet.
Line 61: Line 53:
Una vez terminado, cerramos el ''vi'' (o nuestro editor favorito) y hemos acabado. Eso es todo. Con esta edición estamos listos para crear un ChangeSet.

Pero, ¿qué ocurre si somos interrumpidos y olvidamos los cambios que acabamos de hacer en el ChangeSet? Para saber esto usamos el comando ''status''.
Pero, ¿qué ocurre si somos interrumpidos y olvidamos los cambios que acabamos de hacer en el ChangeSet? Para saber esto usamos el comando {{{status}}}.
Line 69: Line 59:
Esta salida nos dice que el fichero {{{hello.c}}} tiene un cambio listo para incluir en un ChangeSet.
Line 70: Line 61:
Esta salida nos dice que el fichero ''hello.c'' tiene un cambio listo para incluir en un ChangeSet.

El acto de crear un nuevo ChangeSet se denomina ["Commit"] (de "cometer" cambios). Realizamos un ["Commit"] utilizando el comando ''commit'':
El acto de crear un nuevo ChangeSet se denomina ["Commit"] (de "cometer" cambios). Realizamos un ["Commit"] utilizando el comando {{{commit}}}:
Line 77: Line 66:
Line 85: Line 73:
Line 93: Line 80:
Después cerramos el editor y (como debe ser de esperar) el comando de {{{commit}}} no muestra ninguna salida.
Line 94: Line 82:
Después cerramos el editor y (como debe ser de esperar) el comando de ''commit'' no muestra ninguna salida.

¿Que nos dice ahora el comando de ''status''?
¿Que nos dice ahora el comando de {{{status}}}?
Line 101: Line 87:
Line 112: Line 97:

[SpanishTutorial] - haciendo nuestros primeros cambios

Nos encontramos dentro de nuestro repositorio hola-mio, el cual clonamos en SpanishTutorialClone.

El aislar cada línea de desarrollo distinta en un repositorio separado es una buena práctica habitual en ["Mercurial"]. Esto previene que se mezcle código no relacionado entre si, y hace más fácil testear partes del proyecto una a una. Comenzaremos siguiendo este modelo.

Nuestro objetivo inicial será que el programa "hello, world" ("hola, mundo") imprima otra línea de salida. Primero clonaremos nuestro repositorio hola-mio.

 $ cd ..
 $ hg clone hola-mio hola-mio-nueva-salida

De nuevo, este comando no muestra nada si todo va bien.

Nota: Observar que hemos dado a nuestro nuevo repositorio un nombre descriptivo, identificando básicamente el propósito del repositorio. Puesto que hacer un clon de un repositorio en ["Mercurial"] es muy eficiente, podemos rápidamente acumular muchos repositorios ligeramente diferentes. Si a dichos repositorios no les damos nombres descriptivos, perderemos rápidamente la habilidad de saber de qué tratan cada uno de ellos.

Ahora es el momento de hacer un cambio en el nuevo repositorio. Vayamos al directorio de trabajo (WorkingDirectory), el cual es simplemente el nombre que le hemos dado al directorio donde se encuentran todos los ficheros:

 $ cd hola-mio-nueva-salida
 $ vi hello.c

El contenido de hello.c se parece a lo siguiente:

 /*
  * hello.c
  *
  * Placed in the public domain by Bryan O'Sullivan
  *
  * This program is not covered by patents in the United States or other
  * countries.
  */
 #include <stdio.h>
 int main(int argc, char **argv)
 {
     printf("hello, world!\n");
     return 0;
 }

Editamos main para que imprima una línea de salida extra:

 int main(int argc, char **argv)
 {
     printf("hello, world!\n");
     printf("sure am glad I'm using Mercurial!\n");
     return 0;
 }

Una vez terminado, cerramos el vi (o nuestro editor favorito) y hemos acabado. Eso es todo. Con esta edición estamos listos para crear un ChangeSet.

Pero, ¿qué ocurre si somos interrumpidos y olvidamos los cambios que acabamos de hacer en el ChangeSet? Para saber esto usamos el comando status.

 $ hg status
 C hello.c

Esta salida nos dice que el fichero hello.c tiene un cambio listo para incluir en un ChangeSet.

El acto de crear un nuevo ChangeSet se denomina ["Commit"] (de "cometer" cambios). Realizamos un ["Commit"] utilizando el comando commit:

 $ hg commit

Esto abrirá nuestro editor de texto y nos presentará unas cuantas líneas un poco crípticas en él:

 <esta línea estará vacía>
 HG: manifest hash 0d66196b08b861878228219d46258f088092286e
 HG: changed hello.c

La primera línea estará vacía, la segunda contendrá un número de hash bastante largo, y las líneas que siguen identifican los ficheros que van en este ChangeSet.

Para hacer el ["Commit"] del ChangeSet, debemos describir las razones de los cambios. Esto se denomina normalmente el comentario del ChangeSet. En este caso escribamos algo como lo siguiente:

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

Después cerramos el editor y (como debe ser de esperar) el comando de commit no muestra ninguna salida.

¿Que nos dice ahora el comando de status?

 $ hg status

¡Nada! Nuestros cambios han sido incluidos en el ChangeSet, por tanto nuestro ["Tip"] coincide ahora con el contenido de nuestro directorio de trabajo. ¿Significa eso que nuestro nuevo commit se mostrará ahora en el historial de cambios?

 $ hg log
 changeset:   3:da99cce05957f7a62b74d345fd55365dc33109f0
 tag:         tip
 user:        bos@camp4.serpentine.com
 date:        Wed Jun 29 12:58:37 2005
 summary:     Se expresa en inglés y con júbilo la existencia de Mercurial

¡Efectivamente, ahí está! Acabamos de crear y hacer un commit de un ChangeSet.

Como se discutió en SpanishTutorialClone, el nuevo ChangeSet únicamente existe en este repositorio. Esto es un elemento crítico del modo en que funciona ["Mercurial"].

Para compartir los cambios realizados, debemos continuar en SpanishTutorialShareChange.

SpanishTutorialFirstChange (last edited 2010-05-23 15:34:40 by RobertoRodriguez)