summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2017-02-27 13:57:18 -0800
committerJunio C Hamano <gitster@pobox.com>2017-02-27 13:57:18 -0800
commit3e5c63943d35be1804d302c0393affc4916c3dc3 (patch)
tree1a6c6eff3113d5e6b0e5d78cf45b59a3c75a4a6b
parentc13c783c9d3d7d3eff937b7bf3642d2a7fe32644 (diff)
parent20690b213975ad3e9b1bc851f434d818bd2d1de9 (diff)
downloadgit-3e5c63943d35be1804d302c0393affc4916c3dc3.tar.gz
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
-rw-r--r--builtin/remote.c4
-rwxr-xr-xt/t5505-remote.sh19
2 files changed, 22 insertions, 1 deletions
diff --git a/builtin/remote.c b/builtin/remote.c
index 2b415911bf..addf97ad29 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 535d53fa63..a6c0178f3a 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 &&