Re: [PATCHv2 1/2] remote: write correct fetch spec when renaming remote 'remote'
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 6, 2011, 22:58 UTC
- Message-ID
- <7vaaah6zx0.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <1314924634-12235-1-git-send-email-martin.von.zweigbergk@gmail.com>
Martin von Zweigbergk <martin.von.zweigbergk@gmail.com> writes:
Show 22 quoted lines
> @@ -659,15 +660,18 @@ static int mv(int argc, const char **argv)
> strbuf_addf(&buf, "remote.%s.fetch", rename.new);
> if (git_config_set_multivar(buf.buf, NULL, NULL, 1))
> return error("Could not remove config section '%s'", buf.buf);
> + strbuf_addf(&old_remote_context, ":refs/remotes/%s/", rename.old);
> for (i = 0; i < oldremote->fetch_refspec_nr; i++) {
> char *ptr;
>
> strbuf_reset(&buf2);
> strbuf_addstr(&buf2, oldremote->fetch_refspec[i]);
> - ptr = strstr(buf2.buf, rename.old);
> + ptr = strstr(buf2.buf, old_remote_context.buf);
> if (ptr)
> - strbuf_splice(&buf2, ptr-buf2.buf, strlen(rename.old),
> - rename.new, strlen(rename.new));
> + strbuf_splice(&buf2,
> + ptr-buf2.buf + strlen(":refs/remotes/"),
> + strlen(rename.old), rename.new,
> + strlen(rename.new));
> if (git_config_set_multivar(buf.buf, buf2.buf, "^$", 0))
> return error("Could not append '%s'", buf.buf);
> }It is somewhat bothering that we do not say "we didn't do any magic" here when we did not move the tracking branch specifications, but that is not a new problem, so I am OK with this change.
I however suspect that you would want to keep the record of what you changed here, so that the renaming of actual refs done in [PATCH 2/2] is limited to those that you updated the specifications for, no?