With branch.autosetupmerge=always, 'HEAD' becomes a valid target for branch tracking. This is a bit silly, and in fact the code already guards against it when attempting it explicitly: $ git checkout HEAD^0 $ g branch -t foo fatal: Cannot setup tracking information; starting point is not a branch. Silently drop the HEAD candidate in the implicit (i.e. without -t flag) case, so that the branch starts out without an upstream. Signed-off-by: Thomas Rast <trast@xxxxxxxxxxxxxxx> --- branch.c | 8 ++++++-- t/t3200-branch.sh | 9 +++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/branch.c b/branch.c index 93dc866..19310e4 100644 --- a/branch.c +++ b/branch.c @@ -176,8 +176,12 @@ void create_branch(const char *head, break; case 1: /* Unique completion -- good, only if it is a real ref */ - if (explicit_tracking && !strcmp(real_ref, "HEAD")) - die("Cannot setup tracking information; starting point is not a branch."); + if (!strcmp(real_ref, "HEAD")) { + if (explicit_tracking) + die("Cannot setup tracking information; starting point is not a branch."); + else + real_ref = NULL; + } break; default: die("Ambiguous object name: '%s'.", start_name); diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh index f308235..0fa5c91 100755 --- a/t/t3200-branch.sh +++ b/t/t3200-branch.sh @@ -488,6 +488,15 @@ test_expect_success 'autosetuprebase always on an untracked remote branch' ' test "z$(git config branch.myr20.rebase)" = z ' +test_expect_success 'autosetuprebase always on detached HEAD' ' + git config branch.autosetupmerge always && + test_when_finished git checkout master && + git checkout HEAD^0 && + git branch my11 && + test -z "$(git config branch.my11.remote)" && + test -z "$(git config branch.my11.merge)" +' + test_expect_success 'detect misconfigured autosetuprebase (bad value)' ' git config branch.autosetuprebase garbage && test_must_fail git branch -- 1.7.3.3.797.g7a32f -- 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