8

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

4

4 回答 4

3

我昨天和@shambulator 有同样的想法!因此,我添加了以字节为单位打印增量大小的--diffstat功能,作为我有点长且干净的 patch.py​​ 实用程序的输出的一部分。

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

于 2013-06-26T13:33:40.870 回答
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(-)
于 2011-06-09T00:24:48.427 回答
2

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

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

这个怎么运作

这会在为修订版(bash 函数的第一个参数)与其父级(如果是合并可能有两个)wc -c之间的更改生成捆绑包之后使用计算大小(以字节为单位) 。通过用作文件,结果发送到标准输出,无需在磁盘上创建文件即可通过管道传送到该标准输出。REV = $1 "p1(REV)+p2(REV)"/dev/stdoutwc -c

于 2017-03-16T01:14:18.800 回答
1

我昨天也有同样的想法!我编写了一个快速而肮脏的 Python 脚本,用于确定给定标准输入上的统一差异或作为命令行上的文件的总文件大小更改。要为变更集执行此操作,您可以:

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

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

于 2011-06-09T09:26:16.710 回答