Visitar URL original
Needs better error message when repository is rejected by `git` (related to `safe.directory`) · Issue #1616 · gitpython-developers/GitPython · GitHub
Skip to content

Needs better error message when repository is rejected by git (related to safe.directory) #1616

Description

@marioaag

Initial state:
Executions using the latest version of Git (version 2.39.3), in a repository owned by other user.

Current behavior:
Executing:

repo = git.Repo(dir_path)
last_commit = repo.head.commit

Ambiguos error is reported:

  File "/usr/local/lib/python3.9/site-packages/git/refs/symbolic.py", line 226, in _get_commit
    obj = self._get_object()
  File "/usr/local/lib/python3.9/site-packages/git/refs/symbolic.py", line 219, in _get_object
    return Object.new_from_sha(self.repo, hex_to_bin(self.dereference_recursive(self.repo, self.path)))
  File "/usr/local/lib/python3.9/site-packages/git/objects/base.py", line 94, in new_from_sha
    oinfo = repo.odb.info(sha1)
  File "/usr/local/lib/python3.9/site-packages/git/db.py", line 40, in info
    hexsha, typename, size = self._git.get_object_header(bin_to_hex(binsha))
  File "/usr/local/lib/python3.9/site-packages/git/cmd.py", line 1383, in get_object_header
    return self.__get_object_header(cmd, ref)
  File "/usr/local/lib/python3.9/site-packages/git/cmd.py", line 1370, in __get_object_header
    return self._parse_object_header(cmd.stdout.readline())
  File "/usr/local/lib/python3.9/site-packages/git/cmd.py", line 1329, in _parse_object_header
    raise ValueError("SHA could not be resolved, git returned: %r" % (header_line.strip()))
ValueError: SHA could not be resolved, git returned: b''

Expected behavior:
More clear an specific error message or even better a parameter in git.repo() to handle the dubious ownership

Notes:
Doing some debug found that the new version of Git has enable by default a check for dubious ownership that is not handle gracefully by GitPython.

A work around for this is add an exception in Git to consider the file safe git config --global --add safe.directory <dir path>

Activity

  1. Byron commented on Jul 17, 2023

    @Byron
    Member

    Do I understand correctly that the repository isn't trusted by git and GitPython fails with a dubious, seemingly unrelated error?

  2. marioaag commented on Jul 17, 2023

    @marioaag
    Author

    Correct!

  3. changed the title [-]ValueError: SHA could not be resolved, git returned: b''[/-] [+]Needs better error message when repository is rejected by `git` (related to `safe.directory`)[/+] on Jul 18, 2023
  4. Byron commented on Jul 18, 2023

    @Byron
    Member

    Perfect! If you don't mind, could you look at my title and formulate the issue so that it matches the title more? It could be in the form of initial state (a repository owned by someone else), current behaviour, expected behaviour. With that, maybe the issue has a chance to be picked up by someone.

  5. marioaag commented on Jul 19, 2023

    @marioaag
    Author

    Ready! Thanks for the help!

  6. marioaag commented on Nov 22, 2023

    @marioaag
    Author

    Hi @Byron, could you help me to assign the ticket, I will work on it

  7. Byron commented on Nov 23, 2023

    @Byron
    Member

    Thanks a lot! It’s assigned.

  8. marioaag commented on Nov 28, 2023

    @marioaag
    Author

    Hi @Byron, pull request generated! #1746

  9. EliahKagan commented on Dec 23, 2023

    @EliahKagan
    Member

    Should this issue be closed as completed (in #1746)?

  10. Byron commented on Dec 23, 2023

    @Byron
    Member

    Thanks for the reminder!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions