diff: handle errors gracefully

If `git diff` fails in any project checkout (e.g. an incomplete
sync), make sure we print that error clearly rather than blowing
up, and exit non-zero in the process.

Bug: https://crbug.com/gerrit/11613
Change-Id: I12f278427cced20f23f8047e7e3dba8f442ee25e
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/239236
Reviewed-by: David Pursehouse <dpursehouse@collab.net>
Tested-by: Mike Frysinger <vapier@google.com>
This commit is contained in:
Mike Frysinger
2019-09-30 23:59:27 -04:00
parent dc1b59d2c0
commit 0a9265e2d6
2 changed files with 18 additions and 6 deletions

View File

@ -37,5 +37,8 @@ to the Unix 'patch' command.
help='Paths are relative to the repository root')
def Execute(self, opt, args):
ret = 0
for project in self.GetProjects(args):
project.PrintWorkTreeDiff(opt.absolute)
if not project.PrintWorkTreeDiff(opt.absolute):
ret = 1
return ret