Michael Haggerty <mhagger@xxxxxxxxxxxx> writes: >> Right now, for cross-backend reads/writes, the lmdb code cheats. It >> simply does the write directly and immediately. This means that these >> portions of transactions cannot be rolled back. That's clearly bad. > > That's a really good point. > > I hate to break it to you, but the handling of symrefs in Git is already > a mess. HEAD is the only symref that I would really trust to work > correctly all the time. So I think that changes needn't be judged on > whether they handle symrefs perfectly. They should just not break them > in any dramatic new ways. > ... > If everything that I've said is correct, then my opinion is that it > would be perfectly adequate if your code would handle the specific case > of HEAD (by hook or by crook), and if there are any other cross-backend > symrefs, just die with a message stating that such usage is unsupported. > Junio, do you think that would be acceptable? I find it a very sensible approach. > BTW I just realized that if one backend should delegate to another, then > the primary backend should be the per-worktree backend and it should > delegate to the common backend. I think I described things the other way > around in my earlier message. This makes more sense because it is > acceptable for per-worktree references to refer to common references but > not vice versa. Sounds good. Thanks. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html