Mercurial:将一个文件及其历史记录复制到另一个存储库

时间:2010-09-04 17:33:41

标签: mercurial

我想知道是否可以将一个文件及其历史记录从一个存储库复制到另一个存储库,而无需导入整个其他存储库。

2 个答案:

答案 0 :(得分:57)

您可以使用ConvertExtension将第一个存储库中的那个文件导出到新的临时存储库中,然后使用hg pull -f将新存储库导入目标存储库。

使用单行创建ConvertExtension的文件映射:

include path/to/file

然后使用:

hg convert path/to/original path/to/temporary --filemap filemap

创建临时存储库。接下来,在目标存储库中,执行:

hg pull -f path/to/temporary

用它的历史记录来拉入该文件。这将创建一个新头,因此使用hg merge将其与目标存储库中的头部合并。

答案 1 :(得分:10)

只是要添加到Niall C.的答案,您可以重命名要导入的文件,以便将它们放在正确的位置。

您必须先重命名该文件,然后将其包含在内。你的文件图看起来像那样:

rename "original/path" "wished/path"
include "original/path"