2013-06-20 17 views
7

Come posso utilizzare GitPython per stabilire se:Verifica stato di Python locale rispetto al remoto con GitPython

  • mia filiale locale è avanti del telecomando (posso tranquillamente spingere)
  • mia filiale locale è dietro il telecomando (posso tirare tranquillamente)
  • La mia filiale locale si è allontanata dal telecomando?

per verificare se il locale e remota sono gli stessi, sto facendo questo:

def local_and_remote_are_at_same_commit(repo, remote): 
    local_commit = repo.commit() 
    remote_commit = remote.fetch()[0].commit 
    return local_commit.hexsha == remote_commit.hexsha 

risposta

7

Vedere https://stackoverflow.com/a/15862203/197789

Ad es

commits_behind = repo.iter_commits ('master..origin/Master')

e

commits_ahead = repo.iter_commits ('origine/master..master')

Quindi è possibile utilizzare qualcosa come il seguente per passare dall'iteratore a un conteggio:

count = somma (1 per c in commits_ahead)

Questo è stato controllato l'ultima volta con GitPython 1.0.2.

Problemi correlati