Thanks. I'll shelve this for now, maybe sleep on it for a while. The series is complete without this patch by the way, if you want to pick it up. On Fri, Jan 13, 2017 at 6:08 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> writes: > >> With per-worktree configuration in place, core.bare is moved to main >> worktree's private config file. But it does not really make sense >> because this is about _repository_. Instead we could leave core.bare in >> the per-repo config and change/extend its definition from: >> >> If true this repository is assumed to be 'bare' and has no working >> directory associated with it. >> >> to >> >> If true this repository is assumed to be 'bare' and has no _main_ >> working directory associated with it. >> >> In other words, linked worktrees are not covered by core.bare. This >> definition is the same as before when it comes to single worktree setup. > > Up to this point, I think it is not _wrong_ per-se, but it does not > say anything about secondary worktrees. Some may have their own > working tree, others may be bare, and there is no way for programs > to discover if a particular secondary worktree has or lacks its own > working tree. > > Granted, "git worktree" porcelain may be incapable of creating a > secondary worktree without a working tree, but I think the > underlying repository layout still is capable of expressing such a > secondary worktree. > > So there still is something else necessary, I suspect, to make the > definition complete. Perhaps core.bare should be set in > per-worktree configuration for all worktrees including the primary > one, and made the definition/explanation of core.bare to be > "definition of this variable, if done, must be done in per-worktree > config file. If set to true, the worktree is 'bare' and has no > working directory associated with it"? That makes things even more > equal, as there is truly no "special one" at that point. > > I dunno. -- Duy