Non-destructive editing of git cache config.

R=agable@chromium.org,iannucci@chromium.org
BUG=

Review URL: https://codereview.chromium.org/485663003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@290665 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/git_cache.py b/git_cache.py
index 7ebe580..d366864 100755
--- a/git_cache.py
+++ b/git_cache.py
@@ -243,14 +243,18 @@
 
     self.RunGit(['config', 'remote.origin.url', self.url], cwd=cwd)
     self.RunGit(['config', '--replace-all', 'remote.origin.fetch',
-                 '+refs/heads/*:refs/heads/*'], cwd=cwd)
+                 '+refs/heads/*:refs/heads/*', r'\+refs/heads/\*:.*'], cwd=cwd)
     for ref in self.refs:
       ref = ref.lstrip('+').rstrip('/')
       if ref.startswith('refs/'):
         refspec = '+%s:%s' % (ref, ref)
+        regex = r'\+%s:.*' % ref.replace('*', r'\*')
       else:
         refspec = '+refs/%s/*:refs/%s/*' % (ref, ref)
-      self.RunGit(['config', '--add', 'remote.origin.fetch', refspec], cwd=cwd)
+        regex = r'\+refs/heads/%s:.*' % ref.replace('*', r'\*')
+      self.RunGit(
+          ['config', '--replace-all', 'remote.origin.fetch', refspec, regex],
+          cwd=cwd)
 
   def bootstrap_repo(self, directory):
     """Bootstrap the repo from Google Stroage if possible.