Skip to content

remote.push might fail with BadName after successfully pushing #461

Description

@bpoldrack

When pushing to a remote, the creation of PushInfo might fail, while the actual push was successful.
I got this on a forced update. git reports back with the old_sha...new_sha pattern, but since the remote was not fetched before, apparently the object database doesn't know the old (short) SHA and therefore fails to expand it for PushInfo instantiation, raising BadName.
From my point of view, this should either not fail at all (since this is kind of a requirement for a push, that git itself doesn't rely on) or provide a more useful exception. If I call push with a refspec like +local_branch:remote_branch, a BadName(5OM35H4) doesn't tell me, whether I need to deal with the exception or ignore it. At least I need to know, whether it refers to the local commit object (which should be known) or the remote one.

Edit: Forgot to mention: This happened to me in a test only after upgrading from gitpython 2.0.2 to 2.0.5

Activity

  1. Byron commented on Jun 13, 2016

    @Byron
    Member

    Thanks for the description of the issue.
    Would you have way to help me reproduce it ?

    For now I can't imaging how anything that is pushed to a remote manages to not exist in the repository that it is pushed from.

  2. bpoldrack commented on Jun 15, 2016

    @bpoldrack
    ContributorAuthor

    It's about what git reports to be the "old SHA" of the remote, I push to. And this old one wasn't known to the repo I push from without fetching before.
    I'll extract a snippet from my scenario for reproducing.

  3. added this to the v2.0.6 - Bugfixes milestone on Jun 20, 2016
  4. Byron commented on Jun 20, 2016

    @Byron
    Member

    Oh, thanks for the clarification. I believe to understand the issue now.

  5. added a commit that references this issue on Jan 24, 2026
    451504f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions