【问题标题】:Create new mercurial repository cloning SINCE revision创建新的 mercurial 存储库克隆 SINCE 修订版
【发布时间】:2019-02-28 11:12:28
【问题描述】:

我有一个巨大的 mercurial 存储库。

克隆和一些操作开始变慢。 我想摆脱旧的提交,但保留自特定日期以来的修订历史。

有没有什么方法可以保留一个特定提交以来的提交,并将所有较旧的父提交折叠在一个分支中?

R1 -> R2 ->R3 ->R4 ->R5 -> R6 -> R7 ->R8 ->提示

[R1-5] ->R6 ->R7 ->R8 ->提示

我尝试使用 GRAFT 来做这样的事情,但它不起作用(也许我现在不知道如何正确地做到这一点)。

可选:Sourcetree 上有这样的选项吗?

【问题讨论】:

标签: mercurial atlassian-sourcetree


【解决方案1】:

您无法克隆它来实现此目的。但你基本上有两种选择:

  1. 使用histedit 重写历史记录(这是默认扩展,但需要启用) 它为您提供了折叠提交的选项,即将多个提交合并为一个。

  2. convert(本质上也是历史改写) 这使您有机会创建一个仅包含选定提交和分支的新存储库。因此,您可以简单地省略前 4 个提交并从第 5 个提交开始。

还请查看 mercurial 附带的帮助(hg help histedithg help convert)。

【讨论】:

  • 好的,让我们看看我是否明白。如果我 hg clone -b mybranch ,我将拥有一个包含所有历史记录但只有我的分支的仓库。那么,如果我说我想从 rev 5 到小费,我应该如何设置 histedit opts?
  • 您选择要编辑的提交。然后你折叠它们。链接的 wiki 页面有一个示例,尤其是链接的自述文件 bitbucket.org/durin42/histedit/src/tip/… - 它不是一个单一的命令
猜你喜欢
  • 2011-06-09
  • 2011-11-16
  • 2012-02-05
  • 1970-01-01
  • 2018-05-21
  • 2011-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多