【问题标题】:List SIZE of mercurial changesets?列出变化集的大小?
【发布时间】:2011-06-08 20:41:04
【问题描述】:

希望量化每个变更集中发生了多少变化。有什么快速的方法可以列出两个修订版之间的 kb 差异吗?

【问题讨论】:

    标签: mercurial changeset


    【解决方案1】:

    我昨天和@shambulator 有同样的想法!因此,我添加了打印delta size in bytes 的功能,作为somewhat long and clean patch.py 实用程序的--diffstat 输出的一部分。

    wget https://raw.githubusercontent.com/techtonik/python-patch/master/patch.py
    hg diff -c tip | python patch.py --diffstat --
     codereview/views.py | 28 ++++++++++++++++++++++++++++
     index.yaml          | 10 ++++++++++
     2 files changed, 38 insertions(+), 0 deletions(-), +1267 bytes
    

    UPD:感谢@Gili 和@mforbes,现在有一张 Mercurial 的票
    https://bz.mercurial-scm.org/show_bug.cgi?id=4245

    【讨论】:

    【解决方案2】:

    hg log --stat 是您要执行的命令。看这个例子:

    $ hg log --stat
    
    changeset:   12431:56e146c7beef
    user:        flast
    date:        Wed Jun 08 16:12:54 2011 +1000
    summary:     Fix the frobulate to frob the knob correctly on tuesdays.
    
     path/to/src/frob/interface.py       |  29 ++++++++++++++++++++---------
     path/to/tests/systest_frob.py       |  14 ++++++++++++++
     2 files changed, 34 insertions(+), 9 deletions(-)
    

    【讨论】:

      【解决方案3】:

      也许可以使用hg bundle 来检查大小? (我没有检查这与总存储库大小的一致性。)

      function revsize() {
        hg bundle -r $1 --base "p1($1)+p2($1)" /dev/stdout | wc -c
      }
      

      工作原理

      在为修订版REV = $1(bash 函数的第一个参数)和its parents"p1(REV)+p2(REV)"(可能有两个,如果是一个合并。)通过将/dev/stdout 用作文件,结果被发送到标准输出,在那里它可以通过管道传送到wc -c,而无需在磁盘上创建文件。

      【讨论】:

      • 请注意,默认情况下,捆绑包使用 bzip2 压缩。对于不压缩,请使用“-t none”(参见上面链接的 hg bundle 文档)。
      • @Kim 你知道差异是否被压缩存储在磁盘上吗?如果没有,-t none 可能是最好的,但这都需要一些测试(或权威来源)。
      • 根据这个古老的answer,初始文件是压缩的,但差异是未压缩的。不过,我还没有独立验证这一点,也没有找到更新的确认。
      【解决方案4】:

      我昨天也有同样的想法!我写了a quick and dirty Python script 来确定给定标准输入上的统一差异或命令行上的文件的总文件大小变化。要为变更集执行此操作,您可以:

      hg diff -c <cset id> | patchsize.py
      

      从某种意义上说,它可能不考虑特定于平台的行结尾,并且它不会特别巧妙地解析差异,因此快速而肮脏。但它对于我的目的来说已经足够接近了。

      【讨论】:

      • 是的,我一直在使用它。但它只涉及行的插入和删除;我很好奇补丁引入的文件大小的总变化。
      猜你喜欢
      • 2013-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-19
      相关资源
      最近更新 更多