From: William Giokas <1007380@gmail.com> Date: Sat, 27 Apr 2013 20:08:42 GMT Subject: Re: [PATCH] clone: allow cloning local paths with colons in them Message-ID: <20130427200842.GA14994@WST420> In-Reply-To: <1367033778-13923-1-git-send-email-pclouds@gmail.com> 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@gmail.com> > Signed-off-by: Nguyễn Thái Ngọc Duy > --- 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 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