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

Re: [PATCH 3/3] Allow whole-tree operations to be started from a subdirectory

From
JWJosef Weidendorfer <josef.weidendorfer@gmx.de>
Date
Jan 14, 2007, 00:11 UTC
Message-ID
<200701140111.20671.Josef.Weidendorfer@gmx.de>
In-Reply-To
<7vac0orml9.fsf_-_@assigned-by-dhcp.cox.net>
On Friday 12 January 2007 21:56, Junio C Hamano wrote:
Show 7 quoted lines
> This updates five commands (merge, pull, rebase, revert and cherry-pick)
> so that they can be started from a subdirectory.
> 
> This may not actually be what we want to do.  These commands are
> inherently whole-tree operations, and an inexperienced user may
> mistakenly expect a "git pull" from a subdirectory would merge
> only the subdirectory the command started from.
Yes, this IMHO is a problem.

Why not add a general "--top" option to the "git" wrapper, to temporarily let git change to the toplevel while running the command?

The wish to allow git-fetch from subdirectories is the inconvenience to have to cd up, and later down. This is avoided by running "git --top fetch", and theses people should be happy.

Yet, if the command outputs some relative paths, the user is very well aware that these paths are from the toplevel, as he explicitly specified "--top".

Aside from this, the "--top" options sometimes could be handy even for other git commands.

And when e.g. git fetch is run from a subdirectory, we could add to the (now better) error message:

You need to run this command from the toplevel of the working tree. Alternatively, run "git --top ..." to temporary switch to the toplevel while running the git command.

Josef
Previous: Andy ParkinsNext: Shawn O. Pearce
Message 17 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.