随时查看存储库大小

时间:2015-08-18 09:58:27

标签: mercurial code-size

有没有办法获得给定版本的存储库大小?我想创建一个图表,显示大小如何随时间变化。

2 个答案:

答案 0 :(得分:2)

这是一个棘手的问题。

首先:什么是'尺寸'?它是以字节为单位的大小吗?或者它是代码行数?

如果答案是“字节”,那么除了检查每个修订版本之外别无他法,清除工作目录并检查工作目录的大小。

如果答案是“代码行”且存储库仅包含文本文件,那么您可以使用hg log --stat(参见How Can I calculate the sum of a specific column using bash?)查看每个修订版本:

LC_ALL=C hg log -r0:tip --stat | grep 'insertions' | awk '{sum+=$4 ; min+=$6; print $4,$6} END {print "sum=",sum-min}'

这是用hg 3.4.2测试的,但我不知道hg log --stat

的输出有任何重大变化

答案 1 :(得分:0)

受到星球制造者的回答,我写了这个命令:

hg log -r0:tip --stat --template 'date: {date|shortdate}\n' \
    | awk \
        '/^date:/ { date = $2 }
        /^ *[0-9]+ files changed/ { sum += $4 - $6; print date, sum }' \
    | awk \
        '$1 != prevDate { if (prevLine != "") { print prevLine } }
        { prevLine = $0; prevDate = $1 }
        END { print prevLine }'

第二个awk命令过滤掉具有相同日期的多个提交,因此只显示给定日期的最后一次提交。

示例输出:

2014-09-22 304
2014-10-25 308
2014-12-25 320
2014-12-27 253
2015-03-17 252
2015-04-28 230
2015-05-22 241
2015-08-12 301
2015-07-13 302
2015-08-12 306

更新2015-08-19:没有文件更改的提交帐户(有时会发生合并)。