project: fix error display when output_redir is disabled We always pass in output_redir when syncing, but that's the common case: there are a few situations (like `repo init`) where we don't pass in a buffer, and if any errors show up in that case, we'd crash. Rely on the print function to handle this logic for us. Bug: https://crbug.com/gerrit/14568 Change-Id: I8cd47e82329797ffc42534418a3dfbd8429205be Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/307222 Reviewed-by: Raman Tenneti <rtenneti@google.com> Tested-by: Mike Frysinger <vapier@google.com>
diff --git a/project.py b/project.py index 2f83d79..2ab0b38 100644 --- a/project.py +++ b/project.py
@@ -2197,7 +2197,7 @@ ret = prunecmd.Wait() if ret: break - output_redir.write('retrying fetch after pruning remote branches') + print('retrying fetch after pruning remote branches', file=output_redir) # Continue right away so we don't sleep as we shouldn't need to. continue elif current_branch_only and is_sha1 and ret == 128: @@ -2210,10 +2210,11 @@ break # Figure out how long to sleep before the next attempt, if there is one. - if not verbose: - output_redir.write('\n%s:\n%s' % (self.name, gitcmd.stdout)) + if not verbose and gitcmd.stdout: + print('\n%s:\n%s' % (self.name, gitcmd.stdout), end='', file=output_redir) if try_n < retry_fetches - 1: - output_redir.write('sleeping %s seconds before retrying' % retry_cur_sleep) + print('%s: sleeping %s seconds before retrying' % (self.name, retry_cur_sleep), + file=output_redir) time.sleep(retry_cur_sleep) retry_cur_sleep = min(retry_exp_factor * retry_cur_sleep, MAXIMUM_RETRY_SLEEP_SEC)