From: brian m. carlson Date: Fri, 07 Oct 2022 09:02:07 GMT Subject: Re: Idea: Git Bundle V3 capability @HEAD=ref/heads/ Message-ID: In-Reply-To: <037901f1-1649-1485-a853-9783b9d43b31@iee.email> On 2022-10-06 at 15:55:49, Philip Oakley wrote: > In brian's recent work on V3 bundles [1, et al] I spotted a potential > idea for resolving the long standing problem that the bundle code may > need to guess at which ref HEAD was pointed [2, et al] at when there > were two branches that pointed at the same HEAD oid. > > The basic idea is to utilise the new 'capabilities' field to pass the > particular ref that is HEAD using a 'HEAD' capability > i.e. sending the capability    @HEAD=ref/heads/ > > It's inclusion in the header wouldn't change the pack in any way, and > would resolve the guessing problem. > > It would be optional for those that don't want to explictly export the > HEAD ref's name, and could be also protected by requiring that HEAD is > listed in the pack, and maybe that the ref it points to is also > included, and maybe further that there is an alternate ambigous ref listed. > > The idea of the HEAD capability could also be extended to the transport > layer, as well as this bundle sneaker-net layer. > > Are there reasons why it couldn't work before I put it on my list of ideas? I think this is a great idea. I might suggest "symref=HEAD:refs/heads/" simply because it allows us to specify more than one symref if we feel like it in the future, but otherwise I have no objections. I'm glad someone's finding my v3 bundle work more generally useful. -- brian m. carlson (he/him or they/them) Toronto, Ontario, CA