Skip to content

Possible new feature (a new commit query) if not implemented yet #991

Description

@leos313

When executing the following:

string=git.diff('HEAD~1')

it raises an exception when there are no previous commits. It could be a nice feature to have a kind of query that checks if the wanted commit exists (before executing instructions as reported).

I know it is possible to use a try and exception (and it is what I do in my code at line 99). However, I think it is still a nice feature to have.

I am writing this issue following the suggestion of @Byron in this closed issue.

Besides, if there are suggestions or advice to implement a script (using your API) for analyzing your own git repo and reporting the info in a meaningful way, please do not hesitate to write it down here. I am trying to implement it (for fun) in this little project.

Activity

  1. dongs0104 commented on Mar 18, 2020

    @dongs0104
    Contributor

    this problem also related issues: #993 PR: #999
    I think your 'HEAD' is dangling refs, so refs can not found your repo.

  2. Byron commented on Mar 21, 2020

    @Byron
    Member

    Having looked at it just now, I can only agree with @dongs0104 . However, as the code above calls git directly, this also means that git itself is unable to diff when the head is dangling.

    For this issue it means it can be closed as GitPython is probably never going to catch git command failures.

  3. benthayer commented on Dec 6, 2020

    @benthayer
    Contributor

    I'm not sure if you would find it worthwhile to a function that behaves like this:

    repo = ...
    
    def rev_exists(ref):
        try:
            repo.git.rev_parse('--verify', ref)
        except git.exc.GitCommandError:
            return False
        return True
    

    This obviously still uses try/except, but it could be a useful wrapper. You could then run things like

    if repo.rev_exists('HEAD~'):
        string=git.diff('HEAD~1')
    

    I know this would be useful for me because it would feel more natural in the code, and if it's included in the repo object, I would be able to reduce the number of imports needed in my code

  4. Byron commented on Dec 7, 2020

    @Byron
    Member

    I wouldn't mind seeing a PR for this. The method would probably be called ref_exists(…).

  5. added theissue type on Jul 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions