Code

remote: write correct fetch spec when renaming remote 'remote'
authorMartin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Fri, 2 Sep 2011 00:50:33 +0000 (20:50 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 12 Sep 2011 04:39:55 +0000 (21:39 -0700)
commit28f555f6357ee0706847aff5b476b31b472b325c
tree43792d7b55a96f86e0a895a68f56c9527eb78025
parent509d59705ee07094bcc56b49a17ba0ae983da50f
remote: write correct fetch spec when renaming remote 'remote'

When renaming a remote whose name is contained in a configured fetch
refspec for that remote, we currently replace the first occurrence of
the remote name in the refspec. This is correct in most cases, but
breaks if the remote name occurs in the fetch refspec before the
expected place. For example, we currently change

[remote "remote"]
url = git://git.kernel.org/pub/scm/git/git.git
fetch = +refs/heads/*:refs/remotes/remote/*

into

[remote "origin"]
url = git://git.kernel.org/pub/scm/git/git.git
fetch = +refs/heads/*:refs/origins/remote/*

Reduce the risk of changing incorrect sections of the refspec by
matching the entire ":refs/remotes/<name>/" instead of just "<name>".

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/remote.c
t/t5505-remote.sh