教程 - 和别人分享改变
在[ChineseTutorialShareChange:"教程 - 与别的仓库分享改变"]中我们学到如何把[:ChangeSet:变更集]从一个仓库传递到另一个仓库去。有很多其它的方式在人和仓库之间分享改变,其中最常见的一种是通过电子邮件。
我们 ["Commit"] 改变后, 我们可以 ["Export"] 它到一个文件里,并把这个文件作为附件email 给其它人。
我们用 export 命令来 ["Export"] 改变。我们必需提供一个 ["Tag"], [:RevisionNumber:版本号]或 [:ChangeSetID:变更集号] 来告诉 ["Mercurial"] 有什么进入了 ["Export"]。 在我们的这个案例中,我们希望 ["Export"] ["Tip"]。假设我们还在 my-hello-share 这个目录里,让我们做。
$ hg export tip # HG changeset patch # User mpm@selenic.com # Node ID a58809af174d89a3afbbbb48008d34deb30d8574 # Parent 82e55d328c8ca4ee16520036c0aaace03a5beb65 Express great joy at existence of Mercurial 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 @@ -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; }
缺省情况下,["Export"] 只显示补丁,所以我们通常把输出重定向到一个文件中。这个文件是一个 UnifiedDiff 格式的[:PatchFile:补丁]文件,这个文件还带了一些扩展的信息告诉 ["Mercurial"] 如何 ["Import"] 它.
当收件人收到我们的邮件,他们将保存附件并使用 import 命令来把[:ChangeSet:变更集] ["Import"] 到他们的[:Repository:仓库]中去。 (在0.7版本中, ["Mercurial"] 忽略了其中的一些信息,做 import 会引起一合并的问题。)
让我们站在现有的基础上在[:ChineseTutorialMerge:"教程 - 合并改变"]里来学习如何 ["Merge"] 一个改变。