url rewriting: take longest and first match
authorJunio C Hamano <gitster@pobox.com>
Mon, 25 Feb 2008 06:25:04 +0000 (22:25 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 25 Feb 2008 06:34:13 +0000 (22:34 -0800)
commit844112cac07d6413b9bb42d38527d2f7ca7c7801
tree87413bdc1d9a5c1e85213cd54f7e5454d37e7b2b
parent55029ae4dac07942437c0c715ea7c8ac60dd3576
url rewriting: take longest and first match

Earlier we had a cop-out in the documentation to make the
behaviour "undefined" if configuration had more than one
insteadOf that would match the target URL, like this:

    [url "git://git.or.cz/"]
insteadOf = "git.or.cz:"       ; (1)
insteadOf = "repo.or.cz:"      ; (2)
    [url "/local/mirror/"]
insteadOf = "git.or.cz:myrepo" ; (3)
insteadOf = "repo.or.cz:"      ; (4)

It would be most natural to take the longest and first match, i.e.

 - rewrite "git.or.cz:frotz" to "git://git.or.cz/frotz" by using
   (1),

 - rewrite "git.or.cz:myrepo/xyzzy" to "/local/mirror/xyzzy" by favoring
   (3) over (1), and

 - rewrite "repo.or.cz:frotz" to "git://git.or.cz/frotz" by
   favoring (2) over (4).

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/config.txt
remote.c