Specify GIT_DIR when running git-config in a mirror.
BUG=497894
R=hinoka@chromium.org,agable@chromium.org
Review URL: https://codereview.chromium.org/1167193002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@295587 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/git_cache.py b/git_cache.py
index e80923c..9e3eaec 100755
--- a/git_cache.py
+++ b/git_cache.py
@@ -219,23 +219,26 @@
def config(self, cwd=None):
if cwd is None:
cwd = self.mirror_path
+ env = os.environ.copy()
+ env['GIT_DIR'] = cwd
# Don't run git-gc in a daemon. Bad things can happen if it gets killed.
- self.RunGit(['config', 'gc.autodetach', '0'], cwd=cwd)
+ self.RunGit(['config', 'gc.autodetach', '0'], cwd=cwd, env=env)
# 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
# not stuck.
- self.RunGit(['config', 'gc.autopacklimit', '0'], cwd=cwd)
+ self.RunGit(['config', 'gc.autopacklimit', '0'], cwd=cwd, env=env)
# Allocate more RAM for cache-ing delta chains, for better performance
# of "Resolving deltas".
self.RunGit(['config', 'core.deltaBaseCacheLimit',
- gclient_utils.DefaultDeltaBaseCacheLimit()], cwd=cwd)
+ gclient_utils.DefaultDeltaBaseCacheLimit()], cwd=cwd, env=env)
- self.RunGit(['config', 'remote.origin.url', self.url], cwd=cwd)
+ self.RunGit(['config', 'remote.origin.url', self.url], cwd=cwd, env=env)
self.RunGit(['config', '--replace-all', 'remote.origin.fetch',
- '+refs/heads/*:refs/heads/*', r'\+refs/heads/\*:.*'], cwd=cwd)
+ '+refs/heads/*:refs/heads/*', r'\+refs/heads/\*:.*'],
+ cwd=cwd, env=env)
for ref in self.refs:
ref = ref.lstrip('+').rstrip('/')
if ref.startswith('refs/'):
@@ -246,7 +249,7 @@
regex = r'\+refs/heads/%s:.*' % ref.replace('*', r'\*')
self.RunGit(
['config', '--replace-all', 'remote.origin.fetch', refspec, regex],
- cwd=cwd)
+ cwd=cwd, env=env)
def bootstrap_repo(self, directory):
"""Bootstrap the repo from Google Stroage if possible.