== Tutorial - Sharing a Change with another Repository == ''(This page is part of the [[Tutorial]] series. Previous part is TutorialFirstChange, next part is TutorialExport)'' In TutorialFirstChange, we created a [[ChangeSet|changeset]] in the `my-hello-new-output` [[Repository|repository]]. Now we want to propagate that change somewhere else. Following good Mercurial style, let's first clone our original repository. {{{ $ cd .. $ hg clone my-hello my-hello-share updating working directory 2 files updated, 0 files merged, 0 files removed, 0 files unresolved }}} We can use the `tip` command to find out what the [[Tip|tip]] in each repository is. (Remember, the tip is the most recent changeset.) We pass in the `-q` ("be quiet") option to keep Mercurial from printing a complete description of the tip. {{{ $ cd my-hello-share $ hg -q tip 1:82e55d328c8c $ cd ../my-hello-new-output $ hg -q tip 2:86794f718fb1 }}} As we can see, the tip is different in each. Let's go back to `my-hello-share` and propagate our new changeset in there. To do this, we use the `pull` command, which pulls all changesets that are in the other repository, but not yet in this one, into this one. {{{ $ cd ../my-hello-share $ hg pull ../my-hello-new-output pulling from ../my-hello-new-output searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files (run 'hg update' to get a working copy) }}} Unlike other common Mercurial commands, `pull` is chatty. In this case, the pull has succeeded. The last line of output is important. By default, Mercurial does not update the [[WorkingDirectory|working directory]] after a pull. This means that although the repository now contains the changeset, the file `hello.c` in the working directory still has its old pre-pull contents. We can [[Update|update]] this file (and any others that were changed during the pull) by following Mercurial's reminder (we use the abbreviation `up`): {{{ $ hg up 1 files updated, 0 files merged, 0 files removed, 0 files unresolved }}} At this point, we can check and see that `my-hello-share` and `my-hello-new-output` have identical contents and revision histories. To check the repositories are the same, we can go to `my-hello-share`, and do a {{{ $ hg pull ../my-hello-new-output $ hg push ../my-hello-new-output }}} If both of these give a 'no changes found', that means the repositories are identical. Or vice versa, using 'my-hello-new-output' instead of 'my-hello-share'. To share a change with another person, we continue to TutorialExport. ---- CategoryTutorial