summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2017-03-21 22:03:28 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-03-21 22:03:28 (GMT)
commit0d9f9424ad12c8e9e71db45776f6bf4a143b90f3 (patch)
tree91cc0d2c5d178f32beb6376a2364f40d255b4798
parentd30ec1bece7f56080bac3e5a9f8dbc9f80508fdb (diff)
parent20690b213975ad3e9b1bc851f434d818bd2d1de9 (diff)
downloadgit-0d9f9424ad12c8e9e71db45776f6bf4a143b90f3.zip
git-0d9f9424ad12c8e9e71db45776f6bf4a143b90f3.tar.gz
git-0d9f9424ad12c8e9e71db45776f6bf4a143b90f3.tar.bz2
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.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 5339ed6..7682206 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 ba46e86..3ea2710 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 &&