summaryrefslogtreecommitdiff
path: root/git/util.py
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2015-04-08 11:00:32 +0200
committerSebastian Thiel <byronimo@gmail.com>2015-04-08 11:00:32 +0200
commite9f8f159ebad405b2c08aa75f735146bb8e216ef (patch)
treefd09cabbbeb15291b26f5a7775c126ed2cbcabc7 /git/util.py
parent723f100a422577235e06dc024a73285710770fca (diff)
downloadgitpython-e9f8f159ebad405b2c08aa75f735146bb8e216ef.tar.gz
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
Diffstat (limited to 'git/util.py')
-rw-r--r--git/util.py32
1 files changed, 2 insertions, 30 deletions
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