Re: [PATCH] clone: fix repo name when cloning a server's root
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- Jul 27, 2015, 12:51 UTC
- Message-ID
- <CACsJy8C0xzTvxMo7=pLFJyu8Yaqm_nz1qVXMFFo9ubQE-dYYSw@mail.gmail.com>
- In-Reply-To
- <1437997708-10732-1-git-send-email-ps@pks.im>
On Mon, Jul 27, 2015 at 6:48 PM, Patrick Steinhardt <ps@pks.im> wrote:
Show 10 quoted lines
> When cloning a repository from a server's root, that is the URL's > path component is a '/' only, we fail to generate a sensible > repository name when the URL contains authentication data. This > is especially bad when cloning URLs like > 'ssh://user:passwd@example.com/', which results in a repository > 'passwd@example.com' being created. > > Improve the behavior by also regarding '@'-signs as a separator > when scanning the URL. In the mentioned case this would instead > result in a directory 'example.com' being created.
My initial reaction was, if you put password on the command line, you deserve it. However, as we improve this heuristics, perhaps it's better to export parse_connect_url() from connect.c and use it here? We would have more robust parsing. You can create a repo named example.com given the url ssh://user:pass@example.com:123/. Maybe it's overkill?
Show 6 quoted lines
> Signed-off-by: Patrick Steinhardt <ps@pks.im> > --- > I was not able to come by with a useful test as that would > require being able to clone a root directory. I couldn't find > anything in the current tests that looks like what I want to do. > Does anybody have an idea on how to achieve this?
There's t/t1509/prepare-chroot.sh that will prepare a chroot for this purpose. You'll need linux, busybox and chroot permission.
-- Duy