| Index: gclient_scm.py
|
| diff --git a/gclient_scm.py b/gclient_scm.py
|
| index 9a6f5123419cef246e638dc28ae3caf0679cd4ee..5cf839f0079aa4608cdab28824e2e9d3481d804f 100644
|
| --- a/gclient_scm.py
|
| +++ b/gclient_scm.py
|
| @@ -173,19 +173,24 @@ class SCMWrapper(object):
|
| # Get the second token of the first line of the log.
|
| return log.splitlines()[0].split(' ', 1)[1]
|
|
|
| + def GetCacheMirror(self):
|
| + if (getattr(self, 'cache_dir', None)):
|
| + url, _ = gclient_utils.SplitUrlRevision(self.url)
|
| + return git_cache.Mirror(url)
|
| + return None
|
| +
|
| def GetActualRemoteURL(self, options):
|
| """Attempt to determine the remote URL for this SCMWrapper."""
|
| # Git
|
| if os.path.exists(os.path.join(self.checkout_path, '.git')):
|
| actual_remote_url = self._get_first_remote_url(self.checkout_path)
|
|
|
| - # If a cache_dir is used, obtain the actual remote URL from the cache.
|
| - if getattr(self, 'cache_dir', None):
|
| - url, _ = gclient_utils.SplitUrlRevision(self.url)
|
| - mirror = git_cache.Mirror(url)
|
| - if (mirror.exists() and mirror.mirror_path.replace('\\', '/') ==
|
| - actual_remote_url.replace('\\', '/')):
|
| - actual_remote_url = self._get_first_remote_url(mirror.mirror_path)
|
| + mirror = self.GetCacheMirror()
|
| + # If the cache is used, obtain the actual remote URL from there.
|
| + if (mirror and mirror.exists() and
|
| + mirror.mirror_path.replace('\\', '/') ==
|
| + actual_remote_url.replace('\\', '/')):
|
| + actual_remote_url = self._get_first_remote_url(mirror.mirror_path)
|
| return actual_remote_url
|
|
|
| # Svn
|
|
|