Index: gclient_scm.py |
diff --git a/gclient_scm.py b/gclient_scm.py |
index 7b8e238e495e617cfca3473b16c50e93246d8301..bbed0950e870850750beaf9ed98863cb3912cfde 100644 |
--- a/gclient_scm.py |
+++ b/gclient_scm.py |
@@ -258,10 +258,9 @@ class GitWrapper(SCMWrapper): |
backoff_time = 5 |
for _ in range(10): |
try: |
- remote_output, remote_err = scm.GIT.Capture( |
+ remote_output = scm.GIT.Capture( |
['remote'] + verbose + ['update'], |
- self.checkout_path, |
- print_error=False) |
+ cwd=self.checkout_path) |
break |
except gclient_utils.CheckCallError, e: |
# Hackish but at that point, git is known to work so just checking for |
@@ -276,9 +275,7 @@ class GitWrapper(SCMWrapper): |
raise |
if verbose: |
- options.stdout.write(remote_output.strip() + '\n') |
- # git remote update prints to stderr when used with --verbose |
- options.stdout.write(remote_err.strip() + '\n') |
+ options.stdout.write(remote_output) |
# This is a big hammer, debatable if it should even be here... |
if options.force or options.reset: |
@@ -331,10 +328,8 @@ class GitWrapper(SCMWrapper): |
options.stdout.write('Trying fast-forward merge to branch : %s\n' % |
upstream_branch) |
try: |
- merge_output, merge_err = scm.GIT.Capture(['merge', '--ff-only', |
- upstream_branch], |
- self.checkout_path, |
- print_error=False) |
+ merge_output = scm.GIT.Capture(['merge', '--ff-only', upstream_branch], |
+ cwd=self.checkout_path) |
except gclient_utils.CheckCallError, e: |
if re.match('fatal: Not possible to fast-forward, aborting.', e.stderr): |
if not printed_path: |
@@ -342,7 +337,7 @@ class GitWrapper(SCMWrapper): |
printed_path = True |
while True: |
try: |
- # TODO(maruel): That can't work. |
+ # TODO(maruel): That can't work with --jobs. |
action = str(raw_input("Cannot fast-forward merge, attempt to " |
"rebase? (y)es / (q)uit / (s)kip : ")) |
except ValueError: |
@@ -382,10 +377,7 @@ class GitWrapper(SCMWrapper): |
if not printed_path: |
options.stdout.write('\n_____ %s%s\n' % (self.relpath, rev_str)) |
printed_path = True |
- print merge_output.strip() |
- if merge_err: |
- options.stdout.write('Merge produced error output:\n%s\n' % |
- merge_err.strip()) |
+ options.stdout.write(merge_output) |
if not verbose: |
# Make the output a little prettier. It's nice to have some |
# whitespace between projects when syncing. |
@@ -530,13 +522,11 @@ class GitWrapper(SCMWrapper): |
rebase_cmd.append(branch) |
try: |
- rebase_output, rebase_err = scm.GIT.Capture(rebase_cmd, |
- self.checkout_path, |
- print_error=False) |
+ rebase_output = scm.GIT.Capture(rebase_cmd, cwd=self.checkout_path) |
except gclient_utils.CheckCallError, e: |
- if re.match(r'cannot rebase: you have unstaged changes', e.stderr) or \ |
- re.match(r'cannot rebase: your index contains uncommitted changes', |
- e.stderr): |
+ if (re.match(r'cannot rebase: you have unstaged changes', e.stderr) or |
+ re.match(r'cannot rebase: your index contains uncommitted changes', |
+ e.stderr)): |
while True: |
rebase_action = str(raw_input("Cannot rebase because of unstaged " |
"changes.\n'git reset --hard HEAD' ?\n" |
@@ -546,8 +536,7 @@ class GitWrapper(SCMWrapper): |
if re.match(r'yes|y', rebase_action, re.I): |
self._Run(['reset', '--hard', 'HEAD'], options) |
# Should this be recursive? |
- rebase_output, rebase_err = scm.GIT.Capture(rebase_cmd, |
- self.checkout_path) |
+ rebase_output = scm.GIT.Capture(rebase_cmd, cwd=self.checkout_path) |
break |
elif re.match(r'quit|q', rebase_action, re.I): |
raise gclient_utils.Error("Please merge or rebase manually\n" |
@@ -572,10 +561,7 @@ class GitWrapper(SCMWrapper): |
self.checkout_path |
+ "%s" % ' '.join(rebase_cmd)) |
- print rebase_output.strip() |
- if rebase_err: |
- options.stdout.write('Rebase produced error output:\n%s\n' % |
- rebase_err.strip()) |
+ options.stdout.write(rebase_output) |
if not options.verbose: |
# Make the output a little prettier. It's nice to have some |
# whitespace between projects when syncing. |
@@ -601,7 +587,7 @@ class GitWrapper(SCMWrapper): |
# Make sure the tree is clean; see git-rebase.sh for reference |
try: |
scm.GIT.Capture(['update-index', '--ignore-submodules', '--refresh'], |
- self.checkout_path, print_error=False) |
+ cwd=self.checkout_path) |
except gclient_utils.CheckCallError: |
raise gclient_utils.Error('\n____ %s%s\n' |
'\tYou have unstaged changes.\n' |
@@ -609,8 +595,8 @@ class GitWrapper(SCMWrapper): |
% (self.relpath, rev_str)) |
try: |
scm.GIT.Capture(['diff-index', '--cached', '--name-status', '-r', |
- '--ignore-submodules', 'HEAD', '--'], self.checkout_path, |
- print_error=False) |
+ '--ignore-submodules', 'HEAD', '--'], |
+ cwd=self.checkout_path) |
except gclient_utils.CheckCallError: |
raise gclient_utils.Error('\n____ %s%s\n' |
'\tYour index contains uncommitted changes\n' |
@@ -622,10 +608,8 @@ class GitWrapper(SCMWrapper): |
# reference by a commit). If not, error out -- most likely a rebase is |
# in progress, try to detect so we can give a better error. |
try: |
- _, _ = scm.GIT.Capture( |
- ['name-rev', '--no-undefined', 'HEAD'], |
- self.checkout_path, |
- print_error=False) |
+ scm.GIT.Capture(['name-rev', '--no-undefined', 'HEAD'], |
+ cwd=self.checkout_path) |
except gclient_utils.CheckCallError: |
# Commit is not contained by any rev. See if the user is rebasing: |
if self._IsRebasing(): |
@@ -652,8 +636,8 @@ class GitWrapper(SCMWrapper): |
return branch |
def _Capture(self, args): |
- return gclient_utils.CheckCall(['git'] + args, |
- cwd=self.checkout_path)[0].strip() |
+ return gclient_utils.CheckCall( |
+ ['git'] + args, cwd=self.checkout_path, print_error=False)[0].strip() |
def _Run(self, args, options, **kwargs): |
kwargs.setdefault('cwd', self.checkout_path) |