【问题标题】:Viewing repository size over time查看随时间变化的存储库大小
【发布时间】:2015-08-18 09:58:27
【问题描述】:

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

【问题讨论】:

    标签: mercurial code-size


    【解决方案1】:

    这是一个棘手的问题。

    首先:什么是“大小”?它的大小以字节为单位吗?还是代码行数?

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

    如果答案是“代码行”并且存储库仅包含文本文件,那么您可以使用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 的输出有任何重大变化

    【讨论】:

      【解决方案2】:

      受行星制造者回答的启发,我写了这个命令:

      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 更新:考虑没有文件更改的提交(有时会发生合并)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-02
        • 2012-09-10
        • 2018-04-18
        • 2012-01-01
        • 2012-01-28
        • 2022-07-27
        • 1970-01-01
        • 2019-10-12
        相关资源
        最近更新 更多