Re: [PATCH] clone: allow cloning local paths with colons in them
- From
William Giokas <1007380@gmail.com>
- Date
- Apr 27, 2013, 20:08 UTC
- 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:
Show 11 quoted lines
> 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 <pclouds@gmail.com> > ---
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.)
Show 27 quoted lines
> On Mon, Apr 22, 2013 at 10:35 PM, Jeff King <peff@peff.net> 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