Derrick Stolee <derrickstolee@xxxxxxxxxx> writes: > I do want to say that while I admire > JGit's dedication to being compatible with repositories created by Git, I > don't think the reverse is a goal of the Git project. The world works better if cross-pollination happens both ways, though. >> * Symrefs are refs too, but for some reason the packed-refs file >> doesn't support them. Does packed-refs v2 support symrefs too? If you >> want to snapshot the state of refs, do you want to snapshot the value >> of HEAD too? > > I forgot that loose refs under .git/refs/ can be symrefs. This definitely > is a limitation that I should mention. Again, pseudorefs like HEAD are not > included and are stored separately, but symrefs within refs/* are not > available in packed-refs (v1 or v2). That should be explicitly called out > in the extensions.refFormat docs. I expect that, in a typical individual-contributor repository, there are at least two symbolic refs, e.g. .git/HEAD .git/refs/remotes/origin/HEAD Having to fall back on the loose ref hierarchy only to be able to store the latter is a bit of shame---as long as you are revamping the format, the design should allow us to eventually migrate all refs to the new format without having to do the "check there, and if there isn't then check this other place", which is what the current loose + packed combination do, I would think.