Используя GitPython, я хочу вызывать функцию только в том случае, если после вытягивания происходят изменения в локальных файлах.Например, если я делаю push на отдельном компьютере.Затем включите первый компьютер, он работает, как и ожидалось, но не дает никакого вывода.Идеальный вывод - это список файлов, которые были изменены.Или, в качестве альтернативы, просто что-то, что сообщало мне о том, что при извлечении произошла ошибка, ничего не вытащено, потому что ветка была обновлена, или логическое значение, в котором произошли изменения.Я полагаю, что мог бы очистить repo.git.status (), но это кажется грубым.Оглядываясь по сторонам, я могу сравнить ветви на предмет изменений, но мне кажется, что это лишний код и удаленные вызовы.Есть ли правильный способ, используя только вызов по запросу?
while True:
repo = git.Repo()
o = repo.remotes.origin
o.pull()
changed = NOT_SURE
if changed:
do_something()
print(repo.git.status())
time.sleep(POLLING_RATE)
Обновление: Это работает для проверки внесения изменений, но не дает изменения файлов без дополнительных удаленных вызовов
while True:
print(str(time.ctime())+": Checking for updates")
repo = git.Repo()
current_hash = repo.head.object.hexsha
o = repo.remotes.origin
o.pull()
pull_hash = repo.head.object.hexsha
if current_hash != pull_hash:
print("files have changed")
else:
print("no changes")
time.sleep(config.GIT_POLL_RATE)