Differences between revisions 6 and 17 (spanning 11 versions)
Revision 6 as of 2005-08-26 08:31:27
Size: 1801
Editor: mpm
Comment:
Revision 17 as of 2009-05-19 19:30:56
Size: 1996
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== Tutorial - sharing a change with another person == == Tutorial - Sharing a change with another person ==
Line 3: Line 3:
In TutorialShareChange, we learned how to propagate a ChangeSet from one repository to another. ''(This page is part 6 of 9 of the [[Tutorial]] series. Previous part is [[TutorialShareChange]], next part is [[TutorialMerge]])''
Line 5: Line 5:
["Mercurial"] provides several ways of sharing changes between people, but one of the most common is through email. In TutorialShareChange, we learned how to propagate a [[ChangeSet|changeset]] from one [[Repository|repository]] to another. There are other ways of sharing changes between repositories and people, one of the most common is through email.
Line 7: Line 7:
After we have ["Commit"]ted a change, we can ["Export"] it to a file, and email the file as an attachment to someone else. After we have [[Commit|committed]] a change, we can [[Export|export]] it to a file, and email the file as an attachment to someone else.
Line 9: Line 9:
To ["Export"] a change, we use the {{{export}}} command. We must provide a ["Tag"], RevisionNumber or ChangeSetID to tell ["Mercurial"] what to ["Export"]. In our case, we want to ["Export"] the ["Tip"]. By default, ["Export"] just displays the patch, so we redirect the output to a file.

At this point, we should still be in the
my-hello-share directory.
To export a change, we use the `export` command. We must provide a [[Tag|tag]], [[RevisionNumber|revision number]] or [[ChangeSetID|changeset ID]] to tell Mercurial what to export. In our case, we want to export the [[Tip|tip]].  Provided we're still in the `my-hello-share` directory, let's do just that.
Line 14: Line 12:
$ hg export tip
Line 16: Line 15:
# Node ID a58809af174d89a3afbbbb48008d34deb30d8574 # Date 1209943246 -7200
# Node ID 86794f718fb1ea9e633f7c052757663b8ce90e30
Line 20: Line 20:
diff -r 82e55d328c8c -r a58809af174d hello.c
--- a/hello.c Fri Aug 26 08:21:28 2005
+++ b/hello.c Fri Aug 26 08:26:28 2005
diff -r 82e55d328c8c -r 86794f718fb1 hello.c
--- a/hello.c Fri Aug 26 01:21:28 2005 -0700
+++ b/hello.c Mon May 05 01:20:46 2008 +0200
Line 32: Line 32:
This file is a PatchFile in UnifiedDiff format, with some extra information that tells ["Mercurial"] how to ["Import"] it. By default, `export` just displays the patch, so usually we redirect the output to a file (or use option -o). This file is a [[PatchFile|patch file]] in [[UnifiedDiff|unified diff]] format, with some extra information that tells Mercurial how to [[Import|import]] it.
Line 34: Line 34:
When the recipient receives our email, they will save the attachment and use the {{{import}}} command to ["Import"] the ChangeSet into their ["Repository"].  (As of version 0.6c, ["Mercurial"] ignores some of this information on import making imports that involve merges problematic.) When the recipient receives our email, they will save the attachment and use the `import` command to import the changeset into their repository.
Line 36: Line 36:
Let's put ourselves in the position of that recipient, and learn how to ["Merge"] a change, in TutorialMerge. To learn how to [[Merge|merge]] changes from diverged repositories, continue to [[TutorialMerge]].

----
CategoryTutorial

Tutorial - Sharing a change with another person

(This page is part 6 of 9 of the Tutorial series. Previous part is TutorialShareChange, next part is TutorialMerge)

In TutorialShareChange, we learned how to propagate a changeset from one repository to another. There are other ways of sharing changes between repositories and people, one of the most common is through email.

After we have committed a change, we can export it to a file, and email the file as an attachment to someone else.

To export a change, we use the export command. We must provide a tag, revision number or changeset ID to tell Mercurial what to export. In our case, we want to export the tip. Provided we're still in the my-hello-share directory, let's do just that.

$ hg export tip
# HG changeset patch
# User mpm@selenic.com
# Date 1209943246 -7200
# Node ID 86794f718fb1ea9e633f7c052757663b8ce90e30
# Parent  82e55d328c8ca4ee16520036c0aaace03a5beb65
Express great joy at existence of Mercurial

diff -r 82e55d328c8c -r 86794f718fb1 hello.c
--- a/hello.c   Fri Aug 26 01:21:28 2005 -0700
+++ b/hello.c   Mon May 05 01:20:46 2008 +0200
@@ -12,5 +12,6 @@
 int main(int argc, char **argv)
 {
        printf("hello, world!\n");
+       printf("sure am glad I'm using Mercurial!\n");
        return 0;
 }

By default, export just displays the patch, so usually we redirect the output to a file (or use option -o). This file is a patch file in unified diff format, with some extra information that tells Mercurial how to import it.

When the recipient receives our email, they will save the attachment and use the import command to import the changeset into their repository.

To learn how to merge changes from diverged repositories, continue to TutorialMerge.


CategoryTutorial

TutorialExport (last edited 2012-11-08 16:35:10 by abuehl)