summaryrefslogtreecommitdiffstats
path: root/git_config.py
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2011-09-19 11:00:31 -0700
committerShawn O. Pearce <sop@google.com>2011-09-19 14:52:57 -0700
commit13111b4e97d8cccdba5da974de0996994c64c7e5 (patch)
tree817de88a6a4cc406dca1dbb93cdea4ee34c7f903 /git_config.py
parentbd0312a4841e9488cf43ae4afb3b58d44eebbbb1 (diff)
downloadgit-repo-13111b4e97d8cccdba5da974de0996994c64c7e5.tar.gz
Add support for url.*.insteadof
Teach repo how to resolve URLs using the url.insteadof feature that C Git natively uses during clone, fetch or push. This will later allow repo to resolve a URL before accessing it directly. We do not want to pre-resolve things and store the resolved URL into individual projects, as this makes it impossible for the user to undo the insteadof mapping at a later date. Change-Id: I0f62e811197c53fbc8a8be424e3cabf4ed07b4cb Signed-off-by: Shawn O. Pearce <sop@google.com>
Diffstat (limited to 'git_config.py')
-rw-r--r--git_config.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/git_config.py b/git_config.py
index 19c19f19..e4f4a0ab 100644
--- a/git_config.py
+++ b/git_config.py
@@ -198,6 +198,15 @@ class GitConfig(object):
198 except KeyError: 198 except KeyError:
199 return False 199 return False
200 200
201 def UrlInsteadOf(self, url):
202 """Resolve any url.*.insteadof references.
203 """
204 for new_url in self.GetSubSections('url'):
205 old_url = self.GetString('url.%s.insteadof' % new_url)
206 if old_url is not None and url.startswith(old_url):
207 return new_url + url[len(old_url):]
208 return url
209
201 @property 210 @property
202 def _sections(self): 211 def _sections(self):
203 d = self._section_dict 212 d = self._section_dict