git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: `git log relative_path_to_object` does not respect the --work-tree path

From
Roberto Eduardo Decurnex Gorosito <decurnex.roberto@gmail.com>
Date
Sep 29, 2014, 18:11 UTC
Message-ID
<CABj5xzdk38_W93kQAiS191XMp826endMdL9c5heCbLo9AZwA9w@mail.gmail.com>
In-Reply-To
<xmqqy4t2ti75.fsf@gitster.dls.corp.google.com>

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@pobox.com> wrote:
Show 40 quoted lines
> Roberto Eduardo Decurnex Gorosito <decurnex.roberto@gmail.com>
> 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.
>
>
>
>
>
Previous: Junio C HamanoNext: Jonathan Nieder
Message 3 of 5 in “`git log relative_path_to_object` does not respect the --work-tree path”
  1. Roberto Eduardo Decurnex GorositoSep 29, 2014
  2. Junio C HamanoSep 29, 2014
  3. Roberto Eduardo Decurnex GorositoSep 29, 2014
  4. Jonathan NiederSep 29, 2014
  5. Roberto Eduardo Decurnex GorositoSep 30, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.