diff options
author | Martin von Zweigbergk <martin.von.zweigbergk@gmail.com> | 2011-09-10 15:39:23 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-09-11 21:40:00 -0700 |
commit | b52d00aedeb94f12a16afcef1bb33c989f9b4105 (patch) | |
tree | 9a3e5ec235ecdc84adc7d9effbf5aead7cb18140 /builtin | |
parent | remote rename: warn when refspec was not updated (diff) | |
download | tgif-b52d00aedeb94f12a16afcef1bb33c989f9b4105.tar.xz |
remote: only update remote-tracking branch if updating refspec
'git remote rename' will only update the remote's fetch refspec if it
looks like a default one. If the remote has no default fetch refspec,
as in
[remote "origin"]
url = git://git.kernel.org/pub/scm/git/git.git
fetch = +refs/heads/*:refs/remotes/upstream/*
we would not update the fetch refspec and even if there is a ref
called "refs/remotes/origin/master", we should not rename it, since it
was not created by fetching from the remote.
Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/remote.c | 10 |
1 files changed, 7 insertions, 3 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. |