Sorry, I left the --git-dir out of the example. I do set the --git-dir (and $GIT_DIR sometimes) too. It gives the same results. That's why I feels like it shouldn't be working as it is. In this specific case (log with object filter) the environment config is completely ignored. On Mon, Sep 29, 2014 at 3:06 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Roberto Eduardo Decurnex Gorosito <decurnex.roberto@xxxxxxxxx> > writes: > >> ~/path$ git --work-tree=~/path/to_repo log README.md > > This does not seem to specify GIT_DIR explicitly (either with the > $GIT_DIR environment variable or the --git-dir option), so I would > assume that you are sitting in a directory that has ".git/" > subdirectory or a subdirectory of such a directory, but that ".git/" > is not a real repository that controls the working tree you have at > the ~/path/to_repo directory. > > The --work-tree option and $GIT_WORK_TREE environment were primarily > invented to solve this problem: > > When a user gives $GIT_DIR or --git-dir to disable the > repository discovery (i.e. trying to see if the current > directory has ".git/" that looks like a repository, and if not > try the parent directory until we find one), traditionally we > assumed that the current directory is the top-level of the > corresponding working tree. This makes it cumbersome to work > inside a subdirectory, and by allowing $GIT_WORK_TREE or > --work-tree to specify the top-level of the working tree, > working from a subdirectory of a working tree becomes usable > again. > > That is why it does not mix very well with repository discovery > (i.e. letting Git crawl upward from the current directory to find a > directory with ".git/"). It is unclear if the auto-discovered > ".git" is the one to be be consulted for the "log" operation you > asked, or the other repository you have at ~/path/to_repo/.git (or > one of its parent directories, e.g. ~/path/.git). I _think_ the > current implementation randomly chose to use the auto-discovered > one, but it may have been better to forbid and always require both > --git-dir and --work-tree to be given to avoid confusion. > > > > > -- 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