Re: [PATCH] Commands requiring a work tree must not run in GIT_DIR
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:50
Johannes Schindelin [off-list ref] writes:
quoted
I think "require_work_tree" reflects what we are trying to do much better than NOT_BARE. So maybe we should rename NOT_BARE to REQUIRE_WORK_TREE.Hm. Might make sense. But there is a subtle trap here: if a repo is not bare, it does have a work tree. But what we want here actually is NOT_INSIDE_GIT_DIR:
I think we are saying the same thing: "require to be IN the working tree" (hence not in ".git/objects", for example).
It is perfectly sensible to run git-pull from inside the git dir, since it has to cd to the top _anyway_.
I would not call it "perfectly sensible". I never understood why anybody would want to cd to .git/ in a repository with an working tree while actually working on the files in the working tree (e.g. doing merges and pulls and edits and commits) [*1*]. I would say it is in the "allowing it is cheap and harmless so why not" category. [*1*] But it's probably just me who almost always is in Emacs; switching to a shell terminal and saying "cd .git && vi config" is much more expensive than "^X^F .git/config").