diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-03-21 15:03:28 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-03-21 15:03:28 -0700 |
commit | 0d9f9424ad12c8e9e71db45776f6bf4a143b90f3 (patch) | |
tree | 91cc0d2c5d178f32beb6376a2364f40d255b4798 | |
parent | d30ec1bece7f56080bac3e5a9f8dbc9f80508fdb (diff) | |
parent | 20690b213975ad3e9b1bc851f434d818bd2d1de9 (diff) | |
download | git-0d9f9424ad12c8e9e71db45776f6bf4a143b90f3.tar.gz git-0d9f9424ad12c8e9e71db45776f6bf4a143b90f3.tar.xz |
Merge branch 'rl/remote-allow-missing-branch-name-merge' into maint
"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
-rw-r--r-- | builtin/remote.c | 4 | ||||
-rwxr-xr-x | t/t5505-remote.sh | 19 |
2 files changed, 22 insertions, 1 deletions
diff --git a/builtin/remote.c b/builtin/remote.c index 5339ed6ad..7682206c1 100644 --- a/builtin/remote.c +++ b/builtin/remote.c @@ -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); } } } diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh index ba46e86de..3ea27107c 100755 --- a/t/t5505-remote.sh +++ b/t/t5505-remote.sh @@ -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 && |