diff options
author | Patrick Steinhardt <ps@pks.im> | 2015-08-10 17:48:25 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-08-10 11:02:11 -0700 |
commit | adef9561f0c8cf2c974d78adac0ae236e159e49f (patch) | |
tree | c915c91d374b3951d7ac138f56138aa9c34c7ba6 /builtin/clone.c | |
parent | 92722efec01f67a54b68c83fcbc3cd65f9fbb7b8 (diff) | |
download | git-adef9561f0c8cf2c974d78adac0ae236e159e49f.tar.gz |
clone: abort if no dir name could be guessedps/guess-repo-name-at-root
Due to various components of the URI being stripped off it may
happen that we fail to guess a directory name. We currently error
out with a message that it is impossible to create the working
tree '' in such cases. Instead, error out early with a sensible
error message hinting that a directory name should be specified
manually on the command line.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/clone.c')
-rw-r--r-- | builtin/clone.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/builtin/clone.c b/builtin/clone.c index c68eae13bf..f60d3271ed 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -215,6 +215,10 @@ static char *guess_dir_name(const char *repo, int is_bundle, int is_bare) len = end - start; strip_suffix_mem(start, &len, is_bundle ? ".bundle" : ".git"); + if (!len || (len == 1 && *start == '/')) + die("No directory name could be guessed.\n" + "Please specify a directory on the command line"); + if (is_bare) dir = xstrfmt("%.*s.git", (int)len, start); else |