On Thu, May 23, 2024 at 04:04:15PM -0400, Taylor Blau wrote: > On Thu, May 23, 2024 at 07:05:32AM -0400, Jeff King wrote: > > I wonder if the start of the pseudo-merge section should have a 4-byte > > version/flags field itself? I don't think that's something we've done > > before, and maybe it's overkill. I dunno. It's just a lot easier to do > > now than later. > > I think the tricky thing here would be that the extension itself is a > variable size, so every version would have to put the "extension size" > field in the same place. > > Otherwise, an older Git client which doesn't understand a future version > of the pseudo-merge extension wouldn't know how large the extension is, > and wouldn't be able to adjust the index_end field appropriately to skip > over it. > > Of course, we could make it a convention that says "all versions have to > place the extension size field at the same relative offset", but it > feels weird to read some of the extension while not understanding the > whole thing. Ah, yeah, I didn't think of that. That definitely complicates things. It certainly would be possible to have a version+size header at the start. Which is...basically reinventing the chunk format. Let's not worry about it for now, and as a long-term thing we might consider moving the bitmap format over to the chunk style. -Peff