diff options
author | Ross Lagerwall <rosslagerwall@gmail.com> | 2017-02-18 00:23:41 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-02-21 13:57:41 -0800 |
commit | 20690b213975ad3e9b1bc851f434d818bd2d1de9 (patch) | |
tree | 7b4a8cbab33be1b7cbc41ed235fbc124d254f4bd /builtin/remote.c | |
parent | 3b9e3c2cede15057af3ff8076c45ad5f33829436 (diff) | |
download | git-20690b213975ad3e9b1bc851f434d818bd2d1de9.tar.gz |
remote: ignore failure to remove missing branch.<name>.mergerl/remote-allow-missing-branch-name-merge
It is not all too unusual for a branch to use "branch.<name>.remote"
without "branch.<name>.merge". You may be using the 'push.default'
configuration set to 'current', for example, and do
$ git checkout -b side colleague/side
$ git config branch.side.remote colleague
However, "git remote rm" to remove the remote used in such a manner
fails with
"fatal: could not unset 'branch.<name>.merge'"
because it assumes that a branch that has .remote defined must also
have .merge defined. Detect the "cannot unset because it is not set
to begin with" case and ignore it.
Signed-off-by: Ross Lagerwall <rosslagerwall@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/remote.c')
-rw-r--r-- | builtin/remote.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/builtin/remote.c b/builtin/remote.c index e52cf3925b..01055b7272 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); } } } |