Commit 3beabd0a authored by Ryan Tseng's avatar Ryan Tseng Committed by Commit Bot

git_cache.py: Don't bootstrap from Google storage for unrecognized repos.

Also - Turn on GC for the unrecognized repos.

BUG=skia:6241
TEST=local
  git_cache.py populate with chromium and non-chromium repo.

Change-Id: I100d3665e317b29c5b3f69b49c165ce88cd019d6
Reviewed-on: https://chromium-review.googlesource.com/455979
Commit-Queue: Ryan Tseng <hinoka@chromium.org>
Reviewed-by: 's avatarAaron Gable <agable@chromium.org>
parent d343c635
...@@ -225,10 +225,13 @@ class Mirror(object): ...@@ -225,10 +225,13 @@ class Mirror(object):
@property @property
def bootstrap_bucket(self): def bootstrap_bucket(self):
if 'chrome-internal' in self.url: u = urlparse.urlparse(self.url)
return 'chrome-git-cache' if u.netloc == 'chromium.googlesource.com':
else:
return 'chromium-git-cache' return 'chromium-git-cache'
elif u.netloc == 'chrome-internal.googlesource.com':
return 'chrome-git-cache'
# Not recognized.
return None
@classmethod @classmethod
def FromPath(cls, path): def FromPath(cls, path):
...@@ -304,6 +307,7 @@ class Mirror(object): ...@@ -304,6 +307,7 @@ class Mirror(object):
# Don't combine pack files into one big pack file. It's really slow for # Don't combine pack files into one big pack file. It's really slow for
# repositories, and there's no way to track progress and make sure it's # repositories, and there's no way to track progress and make sure it's
# not stuck. # not stuck.
if self.supported_project():
self.RunGit(['config', 'gc.autopacklimit', '0'], cwd=cwd) self.RunGit(['config', 'gc.autopacklimit', '0'], cwd=cwd)
# Allocate more RAM for cache-ing delta chains, for better performance # Allocate more RAM for cache-ing delta chains, for better performance
...@@ -325,6 +329,8 @@ class Mirror(object): ...@@ -325,6 +329,8 @@ class Mirror(object):
More apt-ly named bootstrap_repo_from_cloud_if_possible_else_do_nothing(). More apt-ly named bootstrap_repo_from_cloud_if_possible_else_do_nothing().
""" """
if not self.bootstrap_bucket:
return False
python_fallback = False python_fallback = False
if (sys.platform.startswith('win') and if (sys.platform.startswith('win') and
not gclient_utils.FindExecutable('7z')): not gclient_utils.FindExecutable('7z')):
...@@ -393,6 +399,13 @@ class Mirror(object): ...@@ -393,6 +399,13 @@ class Mirror(object):
def exists(self): def exists(self):
return os.path.isfile(os.path.join(self.mirror_path, 'config')) return os.path.isfile(os.path.join(self.mirror_path, 'config'))
def supported_project(self):
"""Returns true if this repo is known to have a bootstrap zip file."""
u = urlparse.urlparse(self.url)
return u.netloc in [
'chromium.googlesource.com',
'chrome-internal.googlesource.com']
def _preserve_fetchspec(self): def _preserve_fetchspec(self):
"""Read and preserve remote.origin.fetch from an existing mirror. """Read and preserve remote.origin.fetch from an existing mirror.
...@@ -433,8 +446,11 @@ class Mirror(object): ...@@ -433,8 +446,11 @@ class Mirror(object):
if bootstrapped: if bootstrapped:
# Bootstrap succeeded; delete previous cache, if any. # Bootstrap succeeded; delete previous cache, if any.
gclient_utils.rmtree(self.mirror_path) gclient_utils.rmtree(self.mirror_path)
elif not self.exists(): elif not self.exists() or not self.supported_project():
# Bootstrap failed, no previous cache; start with a bare git dir. # Bootstrap failed due to either
# 1. No previous cache
# 2. Project doesn't have a bootstrap zip file
# Start with a bare git dir.
self.RunGit(['init', '--bare'], cwd=tempdir) self.RunGit(['init', '--bare'], cwd=tempdir)
else: else:
# Bootstrap failed, previous cache exists; warn and continue. # Bootstrap failed, previous cache exists; warn and continue.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment