From 7d05ca1d6d01f7e9f8b2acdebac2b656e178a32c Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 15 Nov 2011 14:06:38 -0400 Subject: Fix support for insteadOf url remapping. Closes: #644278 --- Git.hs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'Git.hs') diff --git a/Git.hs b/Git.hs index 5ceaa67f7..3ff42d28f 100644 --- a/Git.hs +++ b/Git.hs @@ -523,13 +523,14 @@ genRemote s repo = gen $ calcloc s | null insteadofs = l | otherwise = replacement ++ drop (length replacement) l where - replacement = take (length bestkey - length prefix) bestkey + replacement = drop (length "url.") $ + take (length bestkey - length suffix) bestkey bestkey = fst $ maximumBy longestvalue insteadofs longestvalue (_, a) (_, b) = compare b a insteadofs = filterconfig $ \(k, v) -> - endswith prefix k && + endswith suffix k && startswith v l - prefix = ".insteadof" + suffix = ".insteadof" -- git remotes can be written scp style -- [user@]host:dir scpstyle v = ":" `isInfixOf` v && not ("//" `isInfixOf` v) scptourl v = "ssh://" ++ host ++ slash dir -- cgit v1.2.3