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

Re: [PATCH] Change to the repository's root directory if needed.

From
Junio C Hamano <junkio@cox.net>
Date
Jan 12, 2007, 21:18 UTC
Message-ID
<7vtzywq703.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<20070112191044.GA5113@midwinter.com>
koreth@midwinter.com writes:
Show 5 quoted lines
> Signed-off-by: Steven Grimm <koreth@midwinter.com>
> ---
>
> Or try this instead. It seems to work in my limited testing, but it's
> possible this breaks something somewhere.

Porcelains that define SUBDIRECTORY_OK but do not do cdup are very valid, and they should not be cd'ed up automatically. They set SUBDIRECTORY_OK for three different reasons:

 (1) some of them always cdup themselves.  git-fetch is the sole
     example I can think of and I do not think it even needs to.
 (2) some of them stay in the subdirectory, and rely on the
     plumbing level to limit the scope of operation with the
     current directory.  The most notable example used to be
     "git-diff" but that is now a built-in.
     Also they take filename that could be relative to the
     current directory.  git-commit is an example.
 (3) some of them are complex mixture of (1) and (2) -- most
     notable is git-checkout
 (4) some of them do not care.  git-verify-tag is an example.

Your patch assumes everybody is either (1) or (4). I would not be surprised if you see breakage everywhere. For example, I think you just broke "git-tag -F <file>". Also I think you surprised users of git-clean (which I do not use personally); it would start removing stuff outside of the current directory.

Previous: koreth@midwinter.comNext: Steven Grimm
Message 8 of 28 in “What's in git.git and announcing GIT v1.5.0-rc1”
  1. Junio C HamanoJan 12, 2007
  2. reflog-expire: brown paper bag fix.Junio C Hamano, Jan 12, 2007
  3. Shawn O. PearceJan 12, 2007
  4. Andy ParkinsJan 12, 2007
  5. Friendlier error message for commands that can't be run from a subdirectory.koreth@midwinter.com, Jan 12, 2007
  6. Steven GrimmJan 12, 2007
  7. Change to the repository's root directory if needed.koreth@midwinter.com, Jan 12, 2007
  8. Junio C HamanoJan 12, 2007
  9. Steven GrimmJan 12, 2007
  10. Junio C HamanoJan 12, 2007
  11. Explain "Not a git repository: '.git'".Junio C Hamano, Jan 12, 2007
  12. Junio C HamanoJan 12, 2007
  13. 1/3 Define cd_to_toplevel shell function in git-sh-setupJunio C Hamano, Jan 12, 2007
  14. 2/3 Use cd_to_toplevel in scripts that implement it by hand.Junio C Hamano, Jan 12, 2007
  15. 3/3 Allow whole-tree operations to be started from a subdirectoryJunio C Hamano, Jan 12, 2007
  16. Andy ParkinsJan 13, 2007
  17. Josef WeidendorferJan 14, 2007
  18. Shawn O. PearceJan 14, 2007
  19. Josef WeidendorferJan 14, 2007
  20. Junio C HamanoJan 14, 2007
  21. Steven GrimmJan 14, 2007
  22. Junio C HamanoJan 14, 2007
  23. Steven GrimmJan 14, 2007
  24. Steven GrimmJan 14, 2007
  25. Junio C HamanoJan 14, 2007
  26. Junio C HamanoJan 14, 2007
  27. Andreas EricssonJan 16, 2007
  28. lamikrJan 14, 2007

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.