我们有2,700多个版本,在使用TortoiseHg进行合并,推送或其他任何操作时加载Mercurial需要30-45秒。我想知道除了直接创建新的存储库以清理修订历史之外还有其他方法。比如说,切断2,400左右的文件。
答案 0 :(得分:4)
不是你问题的答案,但是:
在设置帮助中可能会将“日志批量大小”减少到100(默认值为500)。
我们的2300+ rev repo在2-3秒内加载(离开我的15k rpm SAS磁盘,但没关系),所以我认为你的问题不是很多转,真的。那里有更大的回购。 :)
请注意,Mercurial核心和TortoiseHg开发人员都热衷于发现性能错误,因此在邮件列表中寻求帮助可能是值得的。
答案 1 :(得分:2)
您可以使用histedit扩展名将多个变更集压缩为一个。在一系列修订版上执行histedit命令将生成一个看起来像这样的文本文档(来自histedit文档):
选择c561b4e977df添加测试版 选择030b686bedc4添加伽马
选择7c2fd3b9020c添加delta编辑c561b4e977df和7c2fd3b9020c之间的历史记录
命令:
p,pick =使用提交
e,编辑=使用提交,但停止修改
f,fold =使用提交,但折叠成上次提交
d,drop =从历史中删除提交
将上面列表中某个变更集的pick
更改为fold
会将其折叠到上一个变更集中。它将为您提供解决失败的合并并输入新的提交消息的机会。
使用histedit将修改存储库历史记录,包括哈希ID,这将导致问题,除非您在更改完成后使用新的存储库克隆重新启动每个开发人员。此外,您可能需要使用单个父级限制您的更改集(即:非合并更改集)。