Tutorial - faire nos premiers changements =

Nous sommes dans notre dépôt my-hello que nous avons cloné dans le ["TutorialCloneFr"]

C'est une bonne habitude dans le développement avec Mercurial d'isoler chaque changement dans un dépôt différent, séparé. Cela empêche le mélange de code non lié et rend plus simple les tests de gros morceaux de travail un par un. Commençons en suivant ce modèle.

Notre stupide but initial est de modifier notre programme "hello, tout le monde" pour qu'il affiche une autre ligne. D'abord, nous clonons notre dépôt my-hello :

 $ cd ..
 $ hg clone my-hello my-hello-new-output

Une fois encore, cette commande n'affiche rien si elle aboutit.

Note: Notez que nous avons donné à notre dépôt un nom descriptif, qui identifie simplement le but de celui-ci. Puisque faire un clonage d'un dépôt est bon marché avec Mercurial, nous en accumulerons rapidement pas mal de différents. Si nous ne donnons pas de noms descriptifs à ceux-ci, nous perdrons rapidement la capacité de les identifier un à un.

Maintenant il est temps de faire un changement dans notre nouveau dépôt. Allons dans le dossier de travail, qui est simplement le nom du répertoire contenant les fichiers:

$ cd my-hello-new-output
$ vi hello.c

Le contenu de hello.c ressemble à ceci:

 #include <stdio.h>

 int main(void) {
         printf (STANDART_GREETINGS);
         printf ("\n");
 }

Éditons-le afin qu'il affiche une autre ligne de sortie:

 #include <stdio.h>

 int main(void) {
         printf (STANDART_GREETINGS);
         printf ("\n");
         printf ("Certain que vous êtes heureux d'utiliser Mercurial!");
 }

Une fois que c'est fait, nous quittons vi (ou l'éditeur de texte de notre choix) et nous avons terminé. Voilà. L'édition est maintenant prête pour consister en un Changeset.

Mais que se passe-t-il si nous avons été interrompu, et que nous avons oublié quels changements vont être intégrés dans le Changeset une fois créé ? Pour cela, nous utilisons la commande status.

 $ hg status
 C hello.c

Cette sortie est laconique, mais elle dit simplement que hello.c a un changement prêt à aller dans le Changeset.

Le fait de créer un Changeset est appelé "commit" (submission). Nous faisons un "commit" (ou nous soumettons un changeset) à l'aide de la commande:

 $ hg commit

Ceci va nous envoyer dans notre éditeur de texte (ndr: en général vi) et nous présenter quelques étranges lignes de texte:

 <this line will be empty>
 HG: manifest hash 0d66196b08b861878228219d46258f088092286e
 HG: changed hello.c

La première ligne est vide, la seconde contient un bien long "hash", et les lignes qui suivent identifient les fichiers qui iront dans le Changeset.

Pour soumettre le Changeset, on doit donner une raison pour celui-ci. On appelle cela un commentaire de soumission. Tapons quelque chose comme ça:

Voici l'expression de la grande joie de l'existence de Mercurial

Express great joy at existence of Mercurial

Ensuite, nous quittons l'éditeur (vi : Esc, :wq), et (comme nous l'attendions) le commit n'affiche rien.

Mais que nous donne alors la commande status maintenant ?

 $ hg status

Rien du tout ! Notre changement a été soumis à un Changeset, donc notre Tip correspond maintenant au contenu du dossier. Cela signifie-t-il que notre commit va se retrouver dans l'historique des changements ?

 $ hg log
 changeset:   4:dc707e118a8ca2c3ec4f9462802ef5676cb8f994
 tag:         tip
 user:        tnorth@localhost.localdomain
 date:        Tue Aug  2 18:17:49 2005
 summary:     Voici l'expression de la grande joie de l'existence de Mercurial
 [...]

Il est là ! Nous avons soumis notre Changeset.

Comme nous en parlions dans le ["TutorialCloneFr"], le nouveau Changeset existe uniquement dans ce dépôt.

Pour partager ces changements, nous devons continuer avec le ["TutorialPartageChangements"].