如何使用mercurial在repo中获取补丁的本地副本?

时间:2016-12-22 11:19:31

标签: mercurial

是否有命令将存储库中已有的修补程序导入到使用mercurial的本地源?

1 个答案:

答案 0 :(得分:3)

您可以使用hg export -o filename执行此操作。

$ mkdir repo
$ cd repo
$ hg init
$ echo a > a
$ hg add a
$ hg commit -m "Commit 0"
$ hg export -o patch.txt

如果您打开patch.txt,它将显示为

# HG changeset patch
# User Your Name <your email address>
# Date 1482413390 -19800
#      Thu Dec 22 18:59:50 2016 +0530
# Node ID 6e46bc10f352958b841995d47e6944ae4e9ebd89
# Parent  0000000000000000000000000000000000000000
Commit 0

diff -r 000000000000 -r 6e46bc10f352 a
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/a Thu Dec 22 18:59:50 2016 +0530
@@ -0,0 +1,1 @@
+a 

这与将邮件发送到邮件列表时发生的情况非常相似。有关更多信息,您可以hg help export或转到Tutorial Export

然后,您可以通过执行hg import filename将其导入到任意位置,并将补丁应用于该存储库。

$ cd ..
$ mkdir repo0
$ hg init
$ hg import ../repo/patch.txt
applying ../repo/patch.txt
$ hg tip
changeset:   0:6e46bc10f352
tag:         tip
user:        Your Name <your email address>
date:        Thu Dec 22 18:59:50 2016 +0530
summary:     Commit 0
$ ls
a

您可以看到补丁已应用于您的新目录。