upload: Catch and cleanly report connectivity errors
Instead of giving a Python backtrace when there is a connectivity
problem during repo upload, report that we cannot access the host,
and why, with a halfway decent error message.
Bug: REPO-45
Change-Id: I9a45b387e86e48073a2d99bd6d594c1a7d6d99d4
Signed-off-by: Shawn O. Pearce <sop@google.com>
diff --git a/subcmds/upload.py b/subcmds/upload.py
index 8e3d272..2ab6a48 100644
--- a/subcmds/upload.py
+++ b/subcmds/upload.py
@@ -273,15 +273,19 @@
have_errors = True
print >>sys.stderr, ''
- print >>sys.stderr, '--------------------------------------------'
+ print >>sys.stderr, '----------------------------------------------------------------------'
if have_errors:
for branch in todo:
if not branch.uploaded:
- print >>sys.stderr, '[FAILED] %-15s %-15s (%s)' % (
+ if len(str(branch.error)) <= 30:
+ fmt = ' (%s)'
+ else:
+ fmt = '\n (%s)'
+ print >>sys.stderr, ('[FAILED] %-15s %-15s' + fmt) % (
branch.project.relpath + '/', \
branch.name, \
- branch.error)
+ str(branch.error))
print >>sys.stderr, ''
for branch in todo: