Size: 2838
Comment:
|
Size: 2824
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 11: | Line 11: |
$ hg clone my-hello my-hello-desc | $ hg clone my-hello my-hello-desc |
Line 18: | Line 18: |
$ vi hello.c | $ vi hello.c |
Line 40: | Line 40: |
pulling from ../my-hello-new-output/ 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 ../my-hello-new-output/ 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 53: | Line 53: |
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 65: | Line 65: |
merging hello.c | merging hello.c |
Tutorial - Fusionner les changements =
Dans le ["TutorialExportation"], nous avons appris comment partager les changements avec d'autres personnes.
Mettons-nous maintenant en position du receveur du Changeset.
Premièrement, nous devons créer une raison de fusionner. Clonons le dépôt my-hello de nouveau.
$ cd .. $ hg clone my-hello my-hello-desc
Nous allons donner à hello.c une description dans sa section commentaire (à créer)
$ cd my-hello-desc $ vi hello.c
Modifions la seconde ligne (vide) en :
// hello.c -- hello, world
Sauvons et quittons l'éditeur, et commitons (soumettons) nos changements. Cette fois-ci, nous gagnons un peu de temps en utilisant l'option -m de la commande commit qui permet de ne pas être envoyé dans notre éditeur par défault:
$ hg commit -m'Add description of hello.c'
Maintenant, nous avons fait des changements dans hello.c dans le dépôt my-hello-new-output, et un autre changement à hello.c dans le dépôt my-hello-desc. Va-t-il y avoir un problème lorsque nous ferons un pull de l'un à l'autre ?
Ça marche simplement parfaitement. Pendant que nous somment encore dans my-hello-desc, faisons un pull des changements de my-hello-new-output et regardons ce qui se passe:
$ hg pull ../my-hello-new-output pulling from ../my-hello-new-output/ 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)
Cela semble juste comme l'affichage de pull dans le ["TutorialPartageChangements"]] ! Donc tout ce qui nous reste à faire est un update, juste ?
$ 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)
Quelque chose s'est passé. Mercurial vous dit que vous devez merger (fusionner) les changements que nous avons fait dans chaque dépôt. Cela semble douloureux, non ?
C'est heureusement très simple. Nous suivons simplement les instructions:
$ hg update -m merging hello.c
Et c'est tout ce qu'il y a à faire; Mercurial a été capable de diriger la fusion de manière complètement automatique. Si nous regardons hello.c maintenant, nous verrons qu'il contient et les changements de my-hello-new-output, et ceux de my-hello-desc.
La plupart du temps, quand vous travaillez avec des changements faits par d'autres personnes, c'est le seul type de fusion que vous aurez besoin de faire.
Continuons, et apprenons comment réagir dans des situations où des conflits sont apparus, après que des changements aient été faits. Ceci dans le ["TutorialGestionConflits"].