On Thu, Mar 07, 2013 at 10:27:04PM -0800, Junio C Hamano wrote: > The $GIT_BARE idea sounds very sensible to me. Unfortunately, it is not quite as simple as that. I just wrote up the patch, and it turns out that we are foiled by how core.bare is treated. If it is true, the repo is definitely bare. If it is false, that is only a hint for us. So we cannot just look at is_bare_repository() after setup_git_directory runs. Because we are not "definitely bare", only "maybe bare", it returns false. We just happen not to have a work tree. We could do something like: if (is_bare_repository_cfg || !work_tree) setenv("GIT_BARE", "1", 1); which I think would work, but feels kind of wrong. We are bare in this instance, but somebody setting GIT_WORK_TREE in a sub-process would want to become unbare, presumably, but our variable would override them. Just looking through all of the code paths, I am getting a little nervous that I would not cover all the bases for such a $GIT_BARE to work (e.g., doing GIT_BARE=0 would not do I would expect as a user, because of the historical way we treat core.bare=false). So rather than introduce something like $GIT_BARE which is going to bring about all new kinds of corner cases, I think I'd rather just pass along a $GIT_NO_IMPLICIT_WORK_TREE variable, which is much more direct for solving this problem, and is less likely to end up having bugs of its own. -Peff -- 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