clone: allow "--bare" with "-o"
We explicitly forbid the combination of "--bare" with "-o", but there doesn't seem to be any good reason to do so. The original logic came as part ofe6489a1bdf
(clone: do not accept more than one -o option., 2006-01-22), but that commit does not give any reason. Furthermore, the equivalent combination via config is allowed: git -c clone.defaultRemoteName=foo clone ... and works as expected. It may be that this combination was considered useless, because a bare clone does not set remote.origin.fetch (and hence there is no refs/remotes/origin hierarchy). But it does set remote.origin.url, and that name is visible to the user via "git fetch origin", etc. Let's allow the options to be used together, and switch the "forbid" test in t5606 to check that we use the requested name. That test came much later in349cff76de
(clone: add tests for --template and some disallowed option pairs, 2020-09-29), and does not offer any logic beyond "let's test what the code currently does". Reported-by: John A. Leuenhagen <john@zlima12.com> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
a0feb8611d
commit
3b910d6e29
@ -924,9 +924,6 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
|
|||||||
option_bare = 1;
|
option_bare = 1;
|
||||||
|
|
||||||
if (option_bare) {
|
if (option_bare) {
|
||||||
if (option_origin)
|
|
||||||
die(_("options '%s' and '%s %s' cannot be used together"),
|
|
||||||
"--bare", "--origin", option_origin);
|
|
||||||
if (real_git_dir)
|
if (real_git_dir)
|
||||||
die(_("options '%s' and '%s' cannot be used together"), "--bare", "--separate-git-dir");
|
die(_("options '%s' and '%s' cannot be used together"), "--bare", "--separate-git-dir");
|
||||||
option_no_checkout = 1;
|
option_no_checkout = 1;
|
||||||
|
@ -42,11 +42,12 @@ test_expect_success 'rejects invalid -o/--origin' '
|
|||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'disallows --bare with --origin' '
|
test_expect_success 'clone --bare -o' '
|
||||||
|
|
||||||
test_must_fail git clone -o foo --bare parent clone-bare-o 2>err &&
|
git clone -o foo --bare parent clone-bare-o &&
|
||||||
test_debug "cat err" &&
|
(cd parent && pwd) >expect &&
|
||||||
test_i18ngrep -e "options .--bare. and .--origin foo. cannot be used together" err
|
git -C clone-bare-o config remote.foo.url >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user