【发布时间】:2011-05-18 14:10:59
【问题描述】:
我们有 2,700 多个修订版,当使用 TortoiseHg 进行合并、推送或其他任何操作时,加载 Mercurial 需要 30-45 秒。我想知道除了直接创建一个新的存储库来清理修订历史之外,是否还有其他方法。比如说,删掉2400左右的文件。
【问题讨论】:
-
假设这个 GUI 是 TortoiseHg?
标签: mercurial tortoisehg
我们有 2,700 多个修订版,当使用 TortoiseHg 进行合并、推送或其他任何操作时,加载 Mercurial 需要 30-45 秒。我想知道除了直接创建一个新的存储库来清理修订历史之外,是否还有其他方法。比如说,删掉2400左右的文件。
【问题讨论】:
标签: mercurial tortoisehg
不是您问题的答案,而是:
也许在设置中将“日志批量大小”减少到 100(默认为 500)会有所帮助。
我们的 2300+ rev 存储库在 2-3 秒内加载(在我的 15k rpm SAS 磁盘上,但没关系),所以我不认为你的问题是很多 revs,真的。那里有更大的回购。 :)
请注意,Mercurial 核心和 TortoiseHg 开发人员都热衷于查找性能错误,因此可能值得在邮件列表中寻求帮助。
【讨论】:
您可以使用histedit 扩展名将多个变更集压缩为一个。对一系列修订执行 histedit 命令将生成一个如下所示的文本文档(来自 histedit 文档):
选择 c561b4e977df 添加测试版
选择 030b686bedc4 添加伽玛
选择 7c2fd3b9020c 添加增量编辑 c561b4e977df 和 7c2fd3b9020c 之间的历史记录
命令:
p, 选择 = 使用提交
e, edit = 使用提交,但停止修改
f, fold = 使用提交,但折叠到之前的提交中
d, drop = 从历史记录中删除提交
将上面列表中某个变更集的 pick 更改为 fold 会将其折叠到上一个变更集中。它会让您有机会解决失败的合并并输入新的提交消息。
使用 histedit 将修改存储库历史记录,包括哈希 ID,这将导致问题,除非您在更改完成后使用新的存储库克隆重新启动每个开发人员。此外,您可能需要将 histedit-ing 限制为具有单个父项的变更集(即:非合并变更集)。
【讨论】: