On Tue, Mar 29, 2016 at 06:42:44AM -0500, Elliott Cable wrote: > So, I find this behaviour a little strange; I can't determine if it's > a subtle bug, or intentionally undefined/‘fuzzy’ behaviour: > > $ cd a-repo/.git/ > $ pwd > /path/to/a-repo/.git > $ git rev-parse --is-inside-work-tree > false > $ export GIT_WORK_TREE=/path/to/a-repo > $ git rev-parse --is-inside-work-tree > true > > i.e. when within the repository (the `.git` directory), and when that > directory is a sub-directory of the working-tree, `rev-parse > --is-inside-work-tree` reports *false* (reasonable enough, I suppose); > but then if `$GIT_WORK_TREE` is set to precisely the directory that > git was *already* assuming was the working-directory, then the same > command, in the same location, reports *true*. > > This should probably be made consistent: either `rev-parse > --is-inside-work-tree` should report “true”, even inside the `.git` > dir, as long as that directory is a sub-directory of the working-tree > … or repository-directories / `$GIT_DIR` / `.git` directories should > be excluded from truthy responses to `rev-parse > --is-inside-work-tree`. Yeah, I think this is a bug. Presumably what is happening is that we are too eager to "cd $GIT_WORK_TREE" inside git-rev-parse, and by the time we ask "are we in a work tree", the answer has become yes. But the caller really wants to know "am _I_ inside the work tree". Unfortunately, I think the fix is likely to be rather tricky, as the work-tree stuff is happening deep inside setup_git_directory(). -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