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

Re: [PATCH 0/3] clone --local fixes

From
Junio C Hamano <gitster@pobox.com>
Date
May 27, 2012, 06:32 UTC
Message-ID
<7vsjemp20j.fsf@alter.siamese.dyndns.org>
In-Reply-To
<20120526034226.GA14287@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 6 quoted lines
> Emeric mentioned that he was confused by the behavior of
>
>   git clone --local file:///path/to/repo
>
> in that the --local is silently ignored. Looking over the documentation,
> it is quite unclear whether it is supposed to do anything or not.

According to 23d5335 (git clone: do not issue warning while cloning locally across filesystems, 2007-08-20) and 3d5c418 (git-clone: aggressively optimize local clone behaviour., 2007-08-01), in the very early days we only used the local optimization when the end user explicitly asked for it with the '--local' option.

After 3d5c418f, the option has been made a no-op, because the local-ness of the $repository parameter, where the definition of the local-ness is "does 'cd $repository' succeed?", is all that is needed to trigger the codepath.

The logic to choose the local optimization has since been "is it a path to a local directory---if so, use the optimizaiton. Otherwise do the usual URL based thing". And that is why we tell people when they want to try cloning without local optimization to add "file://" in front of the path.

So your example "file:///" should *not* work even if --local is given, unless you happen to have a directory called "file:" in your current directory and it has path/to/repo subdirectory, which is a git repository. Specifically, the repository at /path/to/repo is not what the command line is naming.

I think we probably should stop advertising --local in the documentation and help text.

Previous: Jeff KingNext: Jeff King
Message 8 of 19 in “clone --local fixes”
  1. 0/3 clone --local fixesJeff King, May 26, 2012
  2. 1/3 t5701: modernize styleJeff King, May 26, 2012
  3. 2/3 clone: make --local handle URLsJeff King, May 26, 2012
  4. Johannes SixtMay 28, 2012
  5. Jeff KingMay 28, 2012
  6. 3/3 clone: allow --no-local to turn off local optimizationsJeff King, May 26, 2012
  7. 4/3 clone: send diagnostic messages to stderrJeff King, May 26, 2012
  8. Junio C HamanoMay 27, 2012
  9. Jeff KingMay 28, 2012
  10. Junio C HamanoMay 29, 2012
  11. Jeff KingMay 30, 2012
  12. Jeff KingMay 30, 2012
  13. 1/2 docs/clone: mention that --local may be ignoredJeff King, May 30, 2012
  14. 2/2 clone: allow --no-local to turn off local optimizationsJeff King, May 30, 2012
  15. Junio C HamanoMay 30, 2012
  16. Jeff KingMay 30, 2012
  17. Junio C HamanoMay 30, 2012
  18. Jeff KingMay 30, 2012
  19. Junio C HamanoMay 30, 2012

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.