On Fri, Jan 19, 2018 at 10:47:57AM -0800, Junio C Hamano wrote: > Jeff King <peff@xxxxxxxx> writes: > > > I also think %(deltabase) does make sense for anything that points to an > > object. I suspect it's not all that _useful_ for for-each-ref, but that > > doesn't mean we can't return the sensible thing if somebody asks for it. > > This may not be a new issue (or any issue at all), but is the > ability to learn deltabase make any sense in the first place? > > What should the code do when an object has three copies in the > repo, i.e. one as a base object (or a loose one), another as a > delta against an object, and the third one as a delta against > a different object? This was a known issue when I introduced %(deltabase). The documentation explicitly calls this out and makes no promises about which copy we describe. The %(objectsize:disk) atom has the same issue, too. See the CAVEATS section of git-cat-file(1). -Peff