Merge branch 'rl/remote-allow-missing-branch-name-merge'

"git remote rm X", when a branch has remote X configured as the
value of its branch.*.remote, tried to remove branch.*.remote and
branch.*.merge and failed if either is unset.

* rl/remote-allow-missing-branch-name-merge:
  remote: ignore failure to remove missing branch.<name>.merge
This commit is contained in:
Junio C Hamano 2017-02-27 13:57:18 -08:00
commit 3e5c63943d
2 changed files with 22 additions and 1 deletions

View File

@ -769,7 +769,9 @@ static int rm(int argc, const char **argv)
strbuf_reset(&buf);
strbuf_addf(&buf, "branch.%s.%s",
item->string, *k);
git_config_set(buf.buf, NULL);
result = git_config_set_gently(buf.buf, NULL);
if (result && result != CONFIG_NOTHING_SET)
die(_("could not unset '%s'"), buf.buf);
}
}
}

View File

@ -153,6 +153,25 @@ test_expect_success 'remove errors out early when deleting non-existent branch'
)
'
test_expect_success 'remove remote with a branch without configured merge' '
test_when_finished "(
git -C test checkout master;
git -C test branch -D two;
git -C test config --remove-section remote.two;
git -C test config --remove-section branch.second;
true
)" &&
(
cd test &&
git remote add two ../two &&
git fetch two &&
git checkout -b second two/master^0 &&
git config branch.second.remote two &&
git checkout master &&
git remote rm two
)
'
test_expect_success 'rename errors out early when deleting non-existent branch' '
(
cd test &&