【发布时间】:2017-12-14 12:31:18
【问题描述】:
我想看看我的删除调试代码的缩小是否有效,或者它停止工作我无法判断,因为使用了大约 3 个框架并且代码很容易超过 10k 行。但我认为它在某个时候起作用了。所以我想查看过去 10 次左右提交的文件大小,看看文件大小是否有巨大变化
可能是一个脚本,它获取文件大小、返回的提交次数并打印从最近到旧的大小。
【问题讨论】:
我想看看我的删除调试代码的缩小是否有效,或者它停止工作我无法判断,因为使用了大约 3 个框架并且代码很容易超过 10k 行。但我认为它在某个时候起作用了。所以我想查看过去 10 次左右提交的文件大小,看看文件大小是否有巨大变化
可能是一个脚本,它获取文件大小、返回的提交次数并打印从最近到旧的大小。
【问题讨论】:
您需要添加错误检查,并且可能不需要相对路径,但您可以这样做:
$ show_size() { git rev-list -10 HEAD |
while read sha; do git show "$sha:./$1" | wc -c; done; }
您可能需要更多信息;类似:
show_size() { git rev-list -10 HEAD |
while read sha; do
printf "%s: size %d\n" "$(git show -s --format=%aD $sha)" \
"$(git show "$sha:./$1" | wc -c)";
done; }
但是,您可能只想查看文件大小何时发生变化,而不是检查最后 10 次提交:
show_size() {
git rev-list HEAD | while read sha; do
printf "%s: size %d\n" "$(git show -s --format=%aD $sha)" \
"$(git show "$sha:./$1" | wc -c)";
done | awk '$NF!=a; {a=$NF}'
}
【讨论】:
git rev-list HEAD | sed 10q 可以是git rev-list -10 HEAD。
git log -10 --pretty='%H:path/to/it' | git cat-file --batch-check
将在签出历史记录中的最近 10 次提交中获得 path/to/it 的大小,添加 --first-parent 以避免在合并历史记录中搜寻,并添加 -- path/to/it 以仅打印(并计算)触及的提交那条路。
【讨论】: