Differences between revisions 6 and 16 (spanning 10 versions)
Revision 6 as of 2005-08-26 08:31:27
Size: 1801
Editor: mpm
Comment:
Revision 16 as of 2008-09-28 12:48:00
Size: 1980
Comment: added the hg export command
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: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.

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.

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.

$ 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 [:PatchFile:patch file] in [:UnifiedDiff:unified diff] format, with some extra information that tells Mercurial how to [:Import: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:merge] changes from diverged repositories, continue to [:TutorialMerge].


CategoryTutorial

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