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

Re: [BUG] Colon in remote urls

From
Jeff King <peff@peff.net>
Date
Dec 10, 2016, 10:24 UTC
Message-ID
<20161210102446.2sf3dxy7yj7sifcd@sigill.intra.peff.net>
In-Reply-To
<20161210092928.jkaf2rwxhicafmxr@ikki.ethgen.ch>
On Sat, Dec 10, 2016 at 10:29:28AM +0100, Klaus Ethgen wrote:
Show 8 quoted lines
> > I think we long time ago in 2005 have declared that a colon in a
> > directory name would not work for Git repositories because of things
> > like GIT_CEILING_DIRECTORIES, GIT_ALTERNATE_OBJECT_DIRECTORIES; so I
> > do not think we terribly mind that direction.
> 
> That is the first I hear and I really wonder about.
> 
> A colon a perfectly allowed character in POSIX filesystems.

Sure, it's allowed, but it will cause problems due to other syntactic conventions. Try putting "/usr/path:with:colons" into your $PATH variable, for instance. Try rsyncing "xxx:yyy.git" somewhere.

Git does have heuristics for figuring out the difference between "host:repo.git" as an SSH remote versus a local path, but they're not foolproof.

> Moreover, it was no problem before and was introduced as a problem just
> in that version. Even more, a pull (and so a clone I believe) of such a
> path is absolutely ok. Just the push fails.

Sort of. This has always been a problem with the variables Junio mentioned. The change in v2.11 is that the alternates subsystem is being used in some cases where it wasn't before, which is surfacing this limitation in more places.

Show 7 quoted lines
> > directory, i.e. GIT_OBJECT_QUARANTINE_DIRECTORY, whose value is
> > added without splitting to the list of alternate object stores, and
> > the quarantine codepath can export that instead.
> 
> I didn't get it, why is there a need to split? I mean, it is not
> possible to push to two locations at the same time, so why is there
> splitting at all?

Because the new quarantine feature[1] is built on top of the existing alternates mechanism, which can have several sources.

I do think we should address this as a regression, but I think repo names with colons are always going to suffer from some corner cases.

-Peff
[1] See 25ab004c5 and the commits leading up to it for more discussion
    of what the new feature is, if you're curious.
Previous: Klaus EthgenNext: Klaus Ethgen
Message 33 of 46 in “[BUG] Colon in remote urls”
  1. Klaus EthgenDec 9, 2016
  2. Jeff KingDec 9, 2016
  3. Junio C HamanoDec 9, 2016
  4. Jeff KingDec 10, 2016
  5. 0/2 handling alternates paths with colonsJeff King, Dec 12, 2016
  6. 1/2 alternates: accept double-quoted pathsJeff King, Dec 12, 2016
  7. Duy NguyenDec 13, 2016
  8. Jeff KingDec 13, 2016
  9. Junio C HamanoDec 13, 2016
  10. Duy NguyenDec 17, 2016
  11. 2/2 tmp-objdir: quote paths we add to alternatesJeff King, Dec 12, 2016
  12. Johannes SixtDec 12, 2016
  13. Jeff KingDec 13, 2016
  14. Junio C HamanoDec 13, 2016
  15. Jeff KingDec 13, 2016
  16. Junio C HamanoDec 13, 2016
  17. 3/2 t5547-push-quarantine: run the path separator test on Windows, tooJohannes Sixt, Dec 13, 2016
  18. Jeff KingDec 13, 2016
  19. Junio C HamanoDec 13, 2016
  20. 4/2 t5615-alternate-env: double-quotes in file names do not work on WindowsJohannes Sixt, Dec 21, 2016
  21. Jeff KingDec 21, 2016
  22. Johannes SixtDec 22, 2016
  23. Johannes SixtDec 22, 2016
  24. Johannes SchindelinDec 22, 2016
  25. Jeff KingDec 22, 2016
  26. Junio C HamanoDec 12, 2016
  27. Jeff KingDec 13, 2016
  28. Junio C HamanoDec 13, 2016
  29. Jeff KingDec 13, 2016
  30. Junio C HamanoDec 13, 2016
  31. Jeff KingDec 13, 2016
  32. Klaus EthgenDec 10, 2016
  33. Jeff KingDec 10, 2016
  34. Klaus EthgenDec 10, 2016
  35. Johannes SixtDec 9, 2016
  36. Jeff KingDec 10, 2016
  37. Klaus EthgenDec 10, 2016
  38. Jeff KingDec 10, 2016
  39. Klaus EthgenDec 10, 2016
  40. Klaus EthgenDec 10, 2016
  41. Johannes SchindelinDec 10, 2016
  42. Klaus EthgenDec 11, 2016
  43. Philip OakleyDec 11, 2016
  44. Johannes SchindelinDec 12, 2016
  45. Klaus EthgenDec 12, 2016
  46. Johannes SchindelinDec 12, 2016

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.