在 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 分钟。
(同时检查 templates
、files
和 grep
上的 hg 帮助)
类似于 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 分钟。
(同时检查 templates
、files
和 grep
上的 hg 帮助)