Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(194)

Unified Diff: git_common.py

Issue 1566343002: Fix rebase-update on windows on git-svn repos. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: nocover Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | git_rebase_update.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: git_common.py
diff --git a/git_common.py b/git_common.py
index d40514462c98775d3d5519a277bedfb2915fba0d..506365257ecd63556258f4656350cd3240142f2d 100644
--- a/git_common.py
+++ b/git_common.py
@@ -33,7 +33,8 @@ import subprocess2
ROOT = os.path.abspath(os.path.dirname(__file__))
-GIT_EXE = ROOT+'\\git.bat' if sys.platform.startswith('win') else 'git'
+IS_WIN = sys.platform == 'win32'
+GIT_EXE = ROOT+'\\git.bat' if IS_WIN else 'git'
TEST_MODE = False
FREEZE = 'FREEZE'
@@ -284,11 +285,20 @@ def branch_config(branch, option, default=None):
return config('branch.%s.%s' % (branch, option), default=default)
+def config_regexp(pattern):
+ if IS_WIN: # pragma: no cover
+ # this madness is because we call git.bat which calls git.exe which calls
+ # bash.exe (or something to that effect). Each layer divides the number of
+ # ^'s by 2.
+ pattern = pattern.replace('^', '^' * 8)
+ return run('config', '--get-regexp', pattern).splitlines()
+
+
def branch_config_map(option):
"""Return {branch: <|option| value>} for all branches."""
try:
reg = re.compile(r'^branch\.(.*)\.%s$' % option)
- lines = run('config', '--get-regexp', reg.pattern).splitlines()
+ lines = config_regexp(reg.pattern)
return {reg.match(k).group(1): v for k, v in (l.split() for l in lines)}
except subprocess2.CalledProcessError:
return {}
@@ -553,7 +563,6 @@ def run_with_retcode(*cmd, **kwargs):
except subprocess2.CalledProcessError as cpe:
return cpe.returncode
-
def run_stream(*cmd, **kwargs):
"""Runs a git command. Returns stdout as a PIPE (file-like object).
@@ -562,6 +571,7 @@ def run_stream(*cmd, **kwargs):
"""
kwargs.setdefault('stderr', subprocess2.VOID)
kwargs.setdefault('stdout', subprocess2.PIPE)
+ kwargs.setdefault('shell', False)
cmd = (GIT_EXE, '-c', 'color.ui=never') + cmd
proc = subprocess2.Popen(cmd, **kwargs)
return proc.stdout
@@ -578,6 +588,7 @@ def run_stream_with_retcode(*cmd, **kwargs):
"""
kwargs.setdefault('stderr', subprocess2.VOID)
kwargs.setdefault('stdout', subprocess2.PIPE)
+ kwargs.setdefault('shell', False)
cmd = (GIT_EXE, '-c', 'color.ui=never') + cmd
try:
proc = subprocess2.Popen(cmd, **kwargs)
@@ -601,6 +612,7 @@ def run_with_stderr(*cmd, **kwargs):
kwargs.setdefault('stdin', subprocess2.PIPE)
kwargs.setdefault('stdout', subprocess2.PIPE)
kwargs.setdefault('stderr', subprocess2.PIPE)
+ kwargs.setdefault('shell', False)
autostrip = kwargs.pop('autostrip', True)
indata = kwargs.pop('indata', None)
« no previous file with comments | « no previous file | git_rebase_update.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698