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

Re: [PATCH] allow setting GIT_WORK_TREE to "no work tree"

From
Jeff King <peff@peff.net>
Date
Feb 7, 2008, 05:13 UTC
Message-ID
<20080207051317.GA32296@sigill.intra.peff.net>
In-Reply-To
<7vwsphu7gr.fsf@gitster.siamese.dyndns.org>
On Wed, Feb 06, 2008 at 12:59:32PM -0800, Junio C Hamano wrote:
> I do not like the magic GIT_WORK_TREE=: which is simply
> illogical.  GIT_EDITOR=: made perfect sense (":" is actually a
> command that succeeds without doing anything), but ":" does not
> have anything to do with "there is no such path".

No, it doesn't, but they are both no-ops. Sort of. I agree the reasoning is stretched, but I think we are just going to have to choose _some_ arbitrary value.

Unless you want to switch it to a "git set GIT_DIR automatically, so don't pretend the user set it" flag variable.

> I was tempted to suggest GIT_WORK_TREE=/dev/null because that is
> what "diff" uses to mark "this does not even exist", but that
> feels dirty.

It feels dirty to me, too. I would rather choose something that doesn't even look like a path. I think GIT_WORK_TREE=" " is too ugly, too.

Also, having just looked at the '.git-file' code, it does the same thing (setting GIT_DIR even though the user didn't explicitly ask for it), so it will need a similar fix. Which makes me lean towards just setting a "we set this behind the user's back" flag, since that code won't even have anything to do with the worktree.

In fact, the more I think about it, that makes sense. WORK_TREE munging just happens to be the only special behavior right now that depends on whether the user manually set GIT_DIR. But what we really want to communicate to later code is not "I have corrected this particular munge" but "don't run any special behavior as a result of this variable being set."

-Peff
Previous: Junio C HamanoNext: Jay Soffian
Message 6 of 13 in “allow setting GIT_WORK_TREE to "no work tree"”
  1. allow setting GIT_WORK_TREE to "no work tree"Jeff King, Feb 6, 2008
  2. Johannes SixtFeb 6, 2008
  3. Jeff KingFeb 6, 2008
  4. Junio C HamanoFeb 6, 2008
  5. Junio C HamanoFeb 6, 2008
  6. Jeff KingFeb 7, 2008
  7. Jay SoffianFeb 7, 2008
  8. Johannes SchindelinFeb 7, 2008
  9. Jay SoffianFeb 7, 2008
  10. Junio C HamanoFeb 7, 2008
  11. Johannes SchindelinFeb 7, 2008
  12. Johannes SixtFeb 8, 2008
  13. Johannes SchindelinFeb 8, 2008

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.