This is the third version of this patch series. It aims to improve guessing directory names such that we do not include authentication data and port numbers in them. This version drops the patches exposing 'parse_connect_url()' and instead does the stripping of authentification data and port inside the URI in 'guess_dir_name()'. Actually I'm not that happy with the patch as it currently stands as it requires a lot of complexity to correctly strip the URI such that we do not mishandle several corner cases. At least I didn't find any shorter way of doing what I want without breaking backwards compatibility. I'll try to explain why the more complex ways of handling the URI are required: - The naive way of just adding '@' as path separator would break cloning repositories like '/foo/bar@xxxxxxx' (which would currently become 'bar@baz' but would become 'baz' only). - Skipping the scheme initially is required because without it we wouldn't be able to scan until the next dir separator in the host part when stripping authentication information. - First checking for '/' in the current stripped URI when we want to remove the port is required because we do not want to strip port numbers when cloning from something like '/foo/bar:2222.git' (which would currently become '2222' but would then be stripped of the ':2222' part and instead become 'bar'). Still, this breaks on cloning a bare repository in the current dir (e.g. cloning 'bar:2222.git', which should become '2222' because it is not a port number but would become 'bar'). As you can see, there is a lot of complexity in there and I'm not convinced this is better than just exposing 'parse_connect_url()', which already handles everything for us. Maybe I'm just being blind for the obvious solution here, though. Patrick Steinhardt (6): tests: fix broken && chains in t1509-root-worktree tests: fix cleanup after tests in t1509-root-worktree clone: do not include authentication data in guessed dir clone: do not use port number as dir name clone: abort if no dir name could be guessed clone: add tests for cloning with empty path builtin/clone.c | 67 ++++++++++++++++++++++++++++++++++++++++-------- t/t1509-root-worktree.sh | 51 +++++++++++++++++++++++++++++++++--- 2 files changed, 103 insertions(+), 15 deletions(-) -- 2.5.0 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html