diff options
-rw-r--r-- | builtin/remote.c | 10 | ||||
-rwxr-xr-x | t/t5505-remote.sh | 3 |
2 files changed, 9 insertions, 4 deletions
diff --git a/builtin/remote.c b/builtin/remote.c index 659c6ab71e..9c746af460 100644 --- a/builtin/remote.c +++ b/builtin/remote.c @@ -635,7 +635,7 @@ static int mv(int argc, const char **argv) old_remote_context = STRBUF_INIT; struct string_list remote_branches = STRING_LIST_INIT_NODUP; struct rename_info rename; - int i; + int i, refspec_updated = 0; if (argc != 3) usage_with_options(builtin_remote_rename_usage, options); @@ -677,12 +677,13 @@ static int mv(int argc, const char **argv) strbuf_reset(&buf2); strbuf_addstr(&buf2, oldremote->fetch_refspec[i]); ptr = strstr(buf2.buf, old_remote_context.buf); - if (ptr) + if (ptr) { + refspec_updated = 1; strbuf_splice(&buf2, ptr-buf2.buf + strlen(":refs/remotes/"), strlen(rename.old), rename.new, strlen(rename.new)); - else + } else warning("Not updating non-default fetch respec\n" "\t%s\n" "\tPlease update the configuration manually if necessary.", @@ -705,6 +706,9 @@ static int mv(int argc, const char **argv) } } + if (!refspec_updated) + return 0; + /* * First remove symrefs, then rename the rest, finally create * the new symrefs. diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh index 15186c8cbf..e8af615e6d 100755 --- a/t/t5505-remote.sh +++ b/t/t5505-remote.sh @@ -637,7 +637,8 @@ test_expect_success 'rename does not update a non-default fetch refspec' ' (cd four.one && git config remote.origin.fetch +refs/heads/*:refs/heads/origin/* && git remote rename origin upstream && - test "$(git config remote.upstream.fetch)" = "+refs/heads/*:refs/heads/origin/*") + test "$(git config remote.upstream.fetch)" = "+refs/heads/*:refs/heads/origin/*" && + git rev-parse -q origin/master) ' |