]> git.ipfire.org Git - thirdparty/git.git/commit - ref-filter.c
ref-filter: add support for %(contents:size)
authorChristian Couder <christian.couder@gmail.com>
Thu, 16 Jul 2020 12:19:40 +0000 (14:19 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 16 Jul 2020 17:46:55 +0000 (10:46 -0700)
commitb6839fda6809b1de8d528837dfc99d0837f77c9d
treed5976950efb3a324cb8a47c670ea829fea75ed60
parent6e2ef8eb06456e288a0a3cc451134479173cebc5
ref-filter: add support for %(contents:size)

It's useful and efficient to be able to get the size of the
contents directly without having to pipe through `wc -c`.

Also the result of the following:

`git for-each-ref --format='%(contents)' refs/heads/my-branch | wc -c`

is off by one as `git for-each-ref` appends a newline character
after the contents, which can be seen by comparing its output
with the output from `git cat-file`.

As with %(contents), %(contents:size) is silently ignored, if a
ref points to something other than a commit or a tag:

```
$ git update-ref refs/mytrees/first HEAD^{tree}
$ git for-each-ref --format='%(contents)' refs/mytrees/first

$ git for-each-ref --format='%(contents:size)' refs/mytrees/first

```

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-for-each-ref.txt
ref-filter.c
t/t6300-for-each-ref.sh