GitCommand errors are stringifying bytes in 3.1.15 · Issue #1220 · gitpython-developers/GitPython (original) (raw)

The 3.1.15 release changed at least how git.exc.GitCommandError Errors are being generated. I have tested with stderr, but am guessing the same would be true for stdout. Previously git.exc.GitCommandError.stderr was a string of the error with bytes decoded, now the error is a string with bytes stringified.

repo.git.rebase Error:

remote.push Error:

Steps to reproduce:

import git

exception = git.exc.CommandError(command="git rebase invalid_branch".split(), stderr=b"abc")
exception.stderr

Steps to reproduce from code

import git

path_to_repo = "my_project"
repo = git.Repo(path_to_repo)

local_branch = "invalid_branch"
remote_branch = local_branch

# Generate Error for Rebase
try:
    repo.git.rebase(refspec=f"{remote_branch})"
except Exception as err:
    print(err.stderr)

# Generate Error for Push
try:
    repo.remotes[0].push(f"{local_branch}:{remote_branch}")
except Exception as err:
    print(err.stderr)