| Index: scm.py
|
| diff --git a/scm.py b/scm.py
|
| index 4dc27d081fd852a8057e0aa85ed823f1144c0564..f0fa40fcb8b4500cd3084a13b3121ee6697227f8 100644
|
| --- a/scm.py
|
| +++ b/scm.py
|
| @@ -17,6 +17,8 @@ import time
|
| import xml.dom.minidom
|
|
|
| import gclient_utils
|
| +import subprocess2
|
| +
|
|
|
| def ValidateEmail(email):
|
| return (re.match(r"^[a-zA-Z0-9._%-+]+@[a-zA-Z0-9._%-]+.[a-zA-Z]{2,6}$", email)
|
| @@ -270,25 +272,25 @@ class GIT(object):
|
| try:
|
| upstream_branch = GIT.Capture(
|
| ['config', 'branch.%s.merge' % branch], cwd=cwd).strip()
|
| - except gclient_utils.Error:
|
| + except (gclient_utils.Error, subprocess2.CalledProcessError):
|
| upstream_branch = None
|
| if upstream_branch:
|
| try:
|
| remote = GIT.Capture(
|
| ['config', 'branch.%s.remote' % branch], cwd=cwd).strip()
|
| - except gclient_utils.Error:
|
| + except (gclient_utils.Error, subprocess2.CalledProcessError):
|
| pass
|
| else:
|
| try:
|
| upstream_branch = GIT.Capture(
|
| ['config', 'rietveld.upstream-branch'], cwd=cwd).strip()
|
| - except gclient_utils.Error:
|
| + except (gclient_utils.Error, subprocess2.CalledProcessError):
|
| upstream_branch = None
|
| if upstream_branch:
|
| try:
|
| remote = GIT.Capture(
|
| ['config', 'rietveld.upstream-remote'], cwd=cwd).strip()
|
| - except gclient_utils.Error:
|
| + except (gclient_utils.Error, subprocess2.CalledProcessError):
|
| pass
|
| else:
|
| # Fall back on trying a git-svn upstream branch.
|
| @@ -459,7 +461,7 @@ class SVN(object):
|
| always=verbose,
|
| filter_fn=CaptureMatchingLines,
|
| stdout=stdout)
|
| - except gclient_utils.Error:
|
| + except (gclient_utils.Error, subprocess2.CalledProcessError):
|
| def IsKnownFailure():
|
| for x in failure:
|
| if (x.startswith('svn: OPTIONS of') or
|
| @@ -659,7 +661,7 @@ class SVN(object):
|
| """
|
| try:
|
| return SVN.Capture(['propget', property_name, filename])
|
| - except gclient_utils.Error:
|
| + except (gclient_utils.Error, subprocess2.CalledProcessError):
|
| return ''
|
|
|
| @staticmethod
|
| @@ -840,7 +842,7 @@ class SVN(object):
|
| """Retrieves the svn account which we assume is an email address."""
|
| try:
|
| infos = SVN.CaptureInfo(repo_root)
|
| - except gclient_utils.Error:
|
| + except (gclient_utils.Error, subprocess2.CalledProcessError):
|
| return None
|
|
|
| # Should check for uuid but it is incorrectly saved for https creds.
|
| @@ -902,7 +904,7 @@ class SVN(object):
|
| info = SVN.CaptureInfo(directory)
|
| cur_dir_repo_root = info['Repository Root']
|
| url = info['URL']
|
| - except gclient_utils.Error:
|
| + except (gclient_utils.Error, subprocess2.CalledProcessError):
|
| return None
|
| while True:
|
| parent = os.path.dirname(directory)
|
| @@ -912,7 +914,7 @@ class SVN(object):
|
| info['URL'] != os.path.dirname(url)):
|
| break
|
| url = info['URL']
|
| - except gclient_utils.Error:
|
| + except (gclient_utils.Error, subprocess2.CalledProcessError):
|
| break
|
| directory = parent
|
| return GetCasedPath(directory)
|
|
|