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

o0'*_*0'. 49 mercurial

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

Nia*_* C. 57

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

使用单行为ConvertExtension创建一个filemap:

include path/to/file
Run Code Online (Sandbox Code Playgroud)

然后使用:

hg convert path/to/original path/to/temporary --filemap filemap
Run Code Online (Sandbox Code Playgroud)

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

hg pull -f path/to/temporary
Run Code Online (Sandbox Code Playgroud)

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

  • ffs我得到了它:它不处理文件重命名!你必须明确地"包含"所有以前的文件名(我不知道他是否会记得他们是重命名而不是新文件) (10认同)

Jie*_*ong 10

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

您必须先重命名该文件,然后包含它.你的文件图看起来像这样:

rename "original/path" "wished/path"
include "original/path"
Run Code Online (Sandbox Code Playgroud)