Merge branch 'ti/branch-set-upstream-hint-fix'

The hint printed when tracking configuration fails to be written has
been corrected to produce a valid remote-tracking branch name.

* ti/branch-set-upstream-hint-fix:
  branch: strip refs/heads/ from the --set-upstream-to hint
This commit is contained in:
Junio C Hamano committed 2026-11-01 09:25:23 -08:00
commit d6370f765e
2 files changed
+30 -3

No files matched your search

+5 -3
View File
@@ -186,12 +186,14 @@ out_err:
advise(_("\nAfter fixing the error cause you may try to fix up\n"
"the remote tracking information by invoking:"));
if (remotes->nr == 1)
if (remotes->nr == 1) {
shortname = remotes->items[0].string;
skip_prefix(shortname, "refs/heads/", &shortname);
advise(" git branch --set-upstream-to=%s%s%s",
origin ? origin : "",
origin ? "/" : "",
remotes->items[0].string);
else {
shortname);
} else {
advise(" git config --add branch.\"%s\".remote %s",
local, origin ? origin : ".");
for_each_string_list_item(item, remotes)
+25
View File
@@ -1080,6 +1080,31 @@ test_expect_success '--set-upstream-to fails on locked config' '
test_grep "could not lock config file .git/config" err
'
test_expect_success '--set-upstream-to hint uses short remote-tracking branch name on locked config' '
test_when_finished "git branch -D hint-local" &&
test_when_finished "git update-ref -d refs/remotes/hintremote/hintbranch" &&
test_config remote.hintremote.url . &&
test_config remote.hintremote.fetch "+refs/heads/*:refs/remotes/hintremote/*" &&
git update-ref refs/remotes/hintremote/hintbranch HEAD &&
git branch hint-local &&
test_when_finished "rm -f .git/config.lock" &&
>.git/config.lock &&
test_must_fail git -c core.configLockTimeout=0 \
branch --set-upstream-to=hintremote/hintbranch hint-local 2>err &&
cat >expect <<-\EOF &&
hint:
hint: After fixing the error cause you may try to fix up
hint: the remote tracking information by invoking:
hint: git branch --set-upstream-to=hintremote/hintbranch
EOF
grep "^hint:" err >actual &&
test_cmp expect actual &&
rm -f .git/config.lock &&
git branch --set-upstream-to=hintremote/hintbranch hint-local &&
test_cmp_config hintremote branch.hint-local.remote &&
test_cmp_config refs/heads/hintbranch branch.hint-local.merge
'
test_expect_success 'use --set-upstream-to modify HEAD' '
test_config branch.main.remote foo &&
test_config branch.main.merge foo &&