【问题标题】:How can you clone a Mercurial repository as of a specific changeset?如何克隆 Mercurial 存储库作为特定变更集?
【发布时间】:2011-05-08 02:06:41
【问题描述】:

如何将 Mercurial 存储库克隆为特定变更集?

即:如果主 repo 有变更集 1-10,如何获取变更集 #7 中存在的源的副本?

【问题讨论】:

    标签: mercurial clone


    【解决方案1】:

    这个命令告诉使用 -r / --rev 开关:

    hg help clone
    

    所以:

    hg clone -r 7
    

    【讨论】:

    • 请注意,这将克隆指定的修订版和所有祖先,但不会克隆与指定修订版无关但在源存储库的 revlog 中较早出现的修订版(例如旧的分歧分支)。
    • 注意:如果您使用的是 bitbucket,则可以在从 bitbucket 存储库克隆或拉取时使用任何给定提交中的特定哈希键作为修订号。例如,对于用户 fakeuser,project fakeproject,commit hash a123456:hg clone https://bitbucket.org/fakeuser/fakeproject -r a123456
    • @rationull 您的评论很重要。我通常通过使用脚本做一堆“拉”来解决这个问题。你知道更好的方法吗? IE。对 OP 的问题有更完整的答案?
    • @markgalassi 特别是 OP 询问有关获取变更集 7 的源代码,并且给出的克隆命令确实实现了这一点。我不知道有一种方法可以让所有变更集都达到请求的版本,而无需使用 Mercurial 的 API 编写 python 代码来按顺序查看实际的变更集/revlog,并将每个变更集推/拉到目标存储库。我的一个同事确实不得不写一个脚本来做这件事,但我不知道细节。
    猜你喜欢
    • 2011-06-09
    • 2011-03-30
    • 2011-11-16
    • 2012-02-05
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多