Skip to content

How do you check for differences? #1040

@jamesgeddes

Description

@jamesgeddes

Bit of a n00b question so apologies in advance.

I am trying to write a little script that,

  1. pull the repo
  2. Check if that pull included any changes
  3. If there have been changes, restart a target program

I have found several ways of checking for changes but none seem to work. Each time, I tested by making a change in my sandbox repo directly on GitHub and then executed the pull, so that the change is applied on my PC. For example,

changed_files = [item.a_path for item in repo.index.diff(None)]

Always appears to output an empty list. This seems to be what the tutorial suggests so I'm not sure why it does not work.

    current = repo.head.commit

    if current == repo.head.commit:
        print("Repo not changed. Sleep mode activated.")
        return 0
    else:
        print("Repo changed! Activated.")
        return 1

Always returns 0.

    diff = repo.git.diff(repo.head.commit.tree)
    print(diff)

When I checked the output when there was a change vs the output where there was no change, both outputs were the same.

What am I doing wrong here?

I have also found a SO question that was asked some time ago but never answered, so I'm not alone in this! Comments in that suggested git diff however I think I have tried that with the first method.

What is the best way to check if a pull has introduced changes since the last pull?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions