在 Mercurial Repository 中查找大文件

Finding Large Files in Mercurial Repository

类似于 this link,但适用于 mercurial。我想找到对我的 mercurial 存储库的大小影响最大的文件。

我打算使用 hg convert 创建一个新的、更小的存储库。我只是不确定哪些文件影响了存储库的大小。它们可能是已被删除的文件。

在存储库历史记录中的任何地方找到这些的好方法是什么?有超过 20,000 次提交。我正在考虑一个 powershell 脚本,但我不确定最好的方法是什么。

勾选hg help fileset。像

hg files "set:size('>1M')"

应该能帮到你。您可能需要对所有修订进行操作,尽管它只对一个修订进行操作。在 bash 中,我会尝试

for i in `hg log -r"all()" "set:size('>400k')" --template="{rev}\n"`; do hg files -r$i "set:size('>400k')"; done | sort | uniq

可能会成功。也许可以对其进行优化,因为它目前有点重复并且可能 运行 相当长一段时间;在 22000 次提交的 OpenTTD 存储库上,我的笔记本电脑只用了不到 10 分钟。

(同时检查 templatesfilesgrep 上的 hg 帮助)