summaryrefslogtreecommitdiffstats
path: root/git_config.py
diff options
context:
space:
mode:
Diffstat (limited to 'git_config.py')
-rw-r--r--git_config.py24
1 files changed, 23 insertions, 1 deletions
diff --git a/git_config.py b/git_config.py
index b6288219..4a42c047 100644
--- a/git_config.py
+++ b/git_config.py
@@ -461,8 +461,30 @@ class Remote(object):
461 self._Get('fetch', all=True)) 461 self._Get('fetch', all=True))
462 self._review_protocol = None 462 self._review_protocol = None
463 463
464 def _InsteadOf(self):
465 globCfg = GitConfig.ForUser()
466 urlList = globCfg.GetSubSections('url')
467 longest = ""
468 longestUrl = ""
469
470 for url in urlList:
471 key = "url." + url + ".insteadOf"
472 insteadOfList = globCfg.GetString(key, all=True)
473
474 for insteadOf in insteadOfList:
475 if self.url.startswith(insteadOf) \
476 and len(insteadOf) > len(longest):
477 longest = insteadOf
478 longestUrl = url
479
480 if len(longest) == 0:
481 return self.url
482
483 return self.url.replace(longest, longestUrl, 1)
484
464 def PreConnectFetch(self): 485 def PreConnectFetch(self):
465 return _preconnect(self.url) 486 connectionUrl = self._InsteadOf()
487 return _preconnect(connectionUrl)
466 488
467 @property 489 @property
468 def ReviewProtocol(self): 490 def ReviewProtocol(self):