从特定版本获取所有文件的最快方法?

时间:2015-12-23 01:20:09

标签: mercurial

我正在尝试找到从特定变更集中获取所有文件的最快方法;我不关心历史。

到目前为止,我发现的最好的事情是cd进入存储库,然后

hg archive -u <changeset> /path/to/put/files

但是我发现即使它没有创建.hg文件夹,即使在大型存储库中也很慢。

我在想也许我可以使用hg update代替,因为它似乎运行得更快,但我不想更新当前目录,我希望将文件写入外部的新目录目前的回购这可能吗?

或者还有其他快速方法吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法来加快速度:

hg archive --config ui.archivemeta=false /path/to/target

此选项会抑制.hg_archival.txt的生成,有时生成起来相对昂贵。

此外,hg update可以在本地更快,因为并非所有文件都必须更新(仅相对于当前版本更改的文件)。 <{1}}或hg clone -U之后的最新更新不应该更快。

您可以尝试递归硬链接(通过hg share -U或类似工具),然后cp -al,但是您必须格外小心,因为修改一个结帐中的文件会影响其他。这只是一个选项,如果您想要一个只读副本,或者您知道(如,肯定知道,而不仅仅是猜测)您不会对任何内容进行任何就地修改的文件。