From e9f8f159ebad405b2c08aa75f735146bb8e216ef Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Wed, 8 Apr 2015 11:00:32 +0200 Subject: fix(remote): allow to raise during push/fetch Do not swallow non-zero exit status during push and fetch unless we managed to parse head information. This behaviour will effetively handle cases were no work was done due to invalid refspecs or insufficient permissions. Fixes #271 --- git/util.py | 32 ++------------------------------ 1 file changed, 2 insertions(+), 30 deletions(-) (limited to 'git/util.py') diff --git a/git/util.py b/git/util.py index f41f20fb..1147cb53 100644 --- a/git/util.py +++ b/git/util.py @@ -16,10 +16,7 @@ import threading # NOTE: Some of the unused imports might be used/imported by others. # Handle once test-cases are back up and running. -from .exc import ( - GitCommandError, - InvalidGitRepositoryError -) +from .exc import InvalidGitRepositoryError from .compat import ( MAXSIZE, @@ -154,32 +151,7 @@ def get_user_id(): def finalize_process(proc): """Wait for the process (clone, fetch, pull or push) and handle its errors accordingly""" - try: - proc.wait() - except GitCommandError: - # if a push has rejected items, the command has non-zero return status - # a return status of 128 indicates a connection error - reraise the previous one - # Everything else will still be parsed and made available through PushInfo flags - # Estimated error results look like this: - # ```bash - # To /var/folders/xp/m48gs2tx2vg95tmtzw7tprs40000gn/T/tmpk5jeBeremote_repo_test_base - # ! refs/heads/master:refs/heads/master [rejected] (non-fast-forward) - # Done - # error: failed to push some refs to - # '/var/folders/xp/m48gs2tx2vg95tmtzw7tprs40000gn/T/tmpk5jeBeremote_repo_test_base' - # hint: Updates were rejected because the tip of your current branch is behind - # hint: its remote counterpart. Integrate the remote changes (e.g. - # hint: 'git pull ...') before pushing again. - # hint: See the 'Note about fast-forwards' in 'git push --help' for details. - # ``` - # See https://github.com/gitpython-developers/GitPython/blob/master/git/test/test_remote.py#L305 - # on how to check for these kinds of errors. - # Also see this issue for a reason for this verbosity: - # https://github.com/gitpython-developers/GitPython/issues/271 - if proc.poll() == 128: - raise - pass - # END exception handling + proc.wait() #} END utilities -- cgit v1.2.1