On 06/24/2017 03:11 AM, Jeff King wrote: > On Fri, Jun 23, 2017 at 02:47:01PM -0700, Junio C Hamano wrote: > >>> Speculating on my own question. I guess it would prepare us for a day >>> when a possible ref store is to use a packed-refs _without_ loose refs. >>> IOW, the property is defined on packed-refs today, but a possible future >>> direction would be to use it by itself. But maybe I'm just making things >>> up. >> >> OK. In other words, it's not a packed-refs's characteristics that >> cruft are allowed. It's that a ref storage that is implemented as >> an overlay of one storage (which happens to be the loose one) on top >> of another (which happens to be the packed refs file) allows the >> latter one to have cruft if (and only if) that broken one is covered >> by the former one. > > Thanks, that's a much better way of saying what I was trying to get at. > I don't know if that's Michael's argument or not, but it's certainly one > I find reasonable. :) That was exactly my thinking. A packed-without-loose storage scheme might, for example, be interesting for people with case-insensitive or strangely-Unicode-normalized filesystems but have colleagues who like to use case or Unicode in their reference names. (Of course that would still require a way to store symbolic refs and reflogs, so I'm not saying that we're there yet.) I also think it is a good idea to keep the backends' interfaces as similar as possible to reduce the number of quirks that the reader has to keep in mind. Michael