Re: [PATCH v2 0/2] Add support for %(contents:size) in ref-filter
From: Christian Couder <hidden>
Date: 2020-07-07 06:19:21
On Tue, Jul 7, 2020 at 7:02 AM Jeff King [off-list ref] wrote:
On Thu, Jul 02, 2020 at 04:08:43PM +0200, Christian Couder wrote:
quoted
The other difference with V1 is that there are more tests in patch 2/2. These new tests required a small helper function to be introduced.I'm still not sure why %(objectsize) isn't sufficient here. Is there some use case that's served by %(contents:size) that it wouldn't work for? Or are we just trying to make it more discoverable when you're looking at the contents already?
%(objectsize) is the size of the whole commit or tag object, while
%(contents:size) is the size of the complete message (the whole commit
message or tag message, including trailers and signatures).
$ git for-each-ref --format='refname: %(refname)%0a%09objectsize:
%(objectsize)%0a%09contents:size: %(contents:size)'
refs/heads/{master,next,seen} refs/tags/v2.2{5,6,7}.0
refname: refs/heads/master
objectsize: 285
contents:size: 69
refname: refs/heads/next
objectsize: 281
contents:size: 17
refname: refs/heads/seen
objectsize: 589
contents:size: 325
refname: refs/tags/v2.25.0
objectsize: 974
contents:size: 842
refname: refs/tags/v2.26.0
objectsize: 974
contents:size: 842
refname: refs/tags/v2.27.0
objectsize: 974
contents:size: 842
When sending only the complete message, not the whole object, through
a protocol, it might be interesting to easily get the length of the
complete message. For example one could use "Content-Length:
%(contents:size)%0a" when sending a complete message over HTTP.