From 594fd33247ce8effe47aef46aa56b92144e218db Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Tue, 21 Jul 2020 23:55:27 +0000 Subject: [PATCH] Decode "git cl" error messages to avoid printing Python bytes We were not decoding the stdout bytes before printing them when git commands returned an error status. This CL fixes that. Before: Command "git cherry-pick FETCH_HEAD" failed. b'Auto-merging chrome/browser/ui/web_applications/app_browser_controller.cc\nAuto-merging chrome/browser/ui/views/frame/opaque_browser_frame_view_browsertest.cc\nCONFLICT (content): Merge conflict in chrome/browser/ui/views/frame/opaque_browser_frame_view_browsertest.cc\nAuto-merging chrome/browser/ui/views/frame/browser_non_client_frame_view.cc\nAuto-merging chrome/browser/ui/views/frame/browser_frame.h\nAuto-merging chrome/browser/ui/views/frame/browser_frame.cc\n' After: Command "git cherry-pick FETCH_HEAD" failed. Auto-merging chrome/browser/ui/web_applications/app_browser_controller.cc Auto-merging chrome/browser/ui/views/frame/opaque_browser_frame_view_browsertest.cc CONFLICT (content): Merge conflict in chrome/browser/ui/views/frame/opaque_browser_frame_view_browsertest.cc Auto-merging chrome/browser/ui/views/frame/browser_non_client_frame_view.cc Auto-merging chrome/browser/ui/views/frame/browser_frame.h Auto-merging chrome/browser/ui/views/frame/browser_frame.cc Change-Id: I162e666ca9f3a70259e6178d2e6d3b72f15b1f7b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2310016 Auto-Submit: Alan Cutter Reviewed-by: Edward Lesmes Commit-Queue: Edward Lesmes --- git_cl.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/git_cl.py b/git_cl.py index da2b4bc30..d951c5a47 100755 --- a/git_cl.py +++ b/git_cl.py @@ -175,9 +175,8 @@ def RunCommand(args, error_ok=False, error_message=None, shell=False, **kwargs): except subprocess2.CalledProcessError as e: logging.debug('Failed running %s', args) if not error_ok: - DieWithError( - 'Command "%s" failed.\n%s' % ( - ' '.join(args), error_message or e.stdout or '')) + message = error_message or e.stdout.decode('utf-8', 'replace') or '' + DieWithError('Command "%s" failed.\n%s' % (' '.join(args), message)) return e.stdout.decode('utf-8', 'replace')