From e9becc079c647f6c9477eed83c0aecb2f591fdf4 Mon Sep 17 00:00:00 2001 From: Hu Xiuyun Date: Wed, 25 Nov 2015 15:52:26 +0800 Subject: [PATCH] Sync: Fix error exit code when both -n and -f are used When repo sync is used with -f (--force-error) and a project fails to sync, the sync will continue but then exit with an error status. However if -n (--network-only) is also used, the exit code is 0, even when a project failed. Modify the logic to make sure the sync exits with the correct status. Bug: Issue 214 Change-Id: I0b5d97a34642c5aa3743750ef14a42c9d5743c1d --- subcmds/sync.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/subcmds/sync.py b/subcmds/sync.py index e865e564..4af411c9 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py @@ -320,6 +320,7 @@ later is required to fix a server side protocol bug. did_lock = True if not success: + err_event.set() print('error: Cannot fetch %s' % project.name, file=sys.stderr) if opt.force_broken: print('warn: --force-broken, continuing to sync', @@ -330,7 +331,7 @@ later is required to fix a server side protocol bug. fetched.add(project.gitdir) pm.update() except _FetchError: - err_event.set() + pass except Exception as e: print('error: Cannot fetch %s (%s: %s)' \ % (project.name, type(e).__name__, str(e)), file=sys.stderr)