On Sat, Apr 27, 2013 at 10:36:18AM +0700, Nguyễn Thái Ngọc Duy wrote: > Usually "foo:bar" is interpreted as an ssh url. This patch allows to > clone from such paths by putting at least one slash before the colon > (i.e. /path/to/foo:bar or just ./foo:bar). > > file://foo:bar should also work, but local optimizations are off in > that case, which may be unwanted. While at there, warn the users about > --local being ignored in this case. > > Reported-by: William Giokas <1007380@xxxxxxxxx> > Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> > --- Working fine at the moment for the local clones (thank you). It looks nice and clean, to me, and doesn't break any existing functionality I have. Though I did notice that if it is a local file, then you don't actually need a `/` anywhere at all, because I think git looks to see that it is a local file first. (This is totally fine, though.) > On Mon, Apr 22, 2013 at 10:35 PM, Jeff King <peff@xxxxxxxx> wrote: > > So I think one reasonable path would be: > > > > 1. Do not treat "host:path" as ssh if "host" has a slash, which should > > not regress anybody. It does not allow unadorned relative paths > > with colons, but it lets you use absolute paths or "./" to > > disambiguate. > > > > 2. Teach git-clone to ask the transport code to parse the source repo > > spec, and decide from that whether it is local or not. That would > > harmonize the implementations and avoid errors when you _did_ mean > > to use ssh, but "host:path" happens to exist in your filesystem. I > > also would not be surprised if there are problems with > > URL-encoding, but maybe clone handles that properly (I didn't > > check). > > > > And the "host contains slash" rule is pretty easy to explain in the > > documentation, which is good. > > I totally agree with this. But doing #2 seems to require a bit of > code reorganization. How about just this for now? > > Documentation/urls.txt | 6 ++++++ > builtin/clone.c | 2 ++ > connect.c | 7 +++++-- > t/t5601-clone.sh | 5 +++++ > 4 files changed, 18 insertions(+), 2 deletions(-) Thank you, -- William Giokas | KaiSforza GnuPG Key: 0x73CD09CF Fingerprint: F73F 50EF BBE2 9846 8306 E6B8 6902 06D8 73CD 09CF
Attachment:
pgp88nUFaImcd.pgp
Description: PGP signature