On Sun, Jul 10, 2016 at 4:16 PM, Johannes Schindelin <Johannes.Schindelin@xxxxxx> wrote: >> No, the point is, refs subsystem needs to know which refs is per-repo, >> which is per-worktree. So far the rules are "everything under refs, >> except a few known exceptions, is per-repo" and "everything directly >> under $GIT_DIR is per-worktree", which work fine. But if you allow to >> move per-worktree to "refs" freely, then the "known exceptions" will >> have to be updated every time a new per-worktree ref appears. It'll be >> easier to modify the first rule as "everything under refs, except some >> legacy exceptions and refs/worktree, is per-repo". > > Given the substantial pain and suffering I have due to per-worktree > reflogs (and those are *just* HEAD's reflogs!), I apologize for that. I clearly did not see all the consequences of my simple-minded approach. Watch out for the shared config issue too if you start to rely on multiple worktrees. It may take even longer time to address than this one. > it appears to me that per-worktree refs would be a particularly poor feature. > > I agree that HEAD needs to be per-worktree, but already the fact that the > HEADs of the worktrees, along with their reflogs, are *not* visible to > all other worktrees causes substantial trouble. > > In my mind, a much more natural design would have been to map > transparently each worktree's HEAD to refs/worktree/<name>/HEAD *and keep > those refs and reflogs visible across all worktrees*. We will be able to see refs from all worktrees if we choose to. There is no question about that. It's needed for full-repo operations, gc included. Whether we expose all worktree namespaces via refs/worktree (as a logical view, not storage one), remains to be seen. Michael's new ref API may be flexible enough that we could do without. I'm not sure yet. > With that design, I would not have irretrievably lost reflogs to auto-gc > nor dozens of hours trying to figure out how to have *any* auto-gc succeed > again (because I need to reduce the horrible slowness incurred by too many > loose objects). My interactive rebases would also not have started to > print the auto-gc error after every friggin' pick. -- Duy -- 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