2017-02-09 3 views
0

Gibt es eine Möglichkeit, alle nicht gedrückten Commits aus allen verfügbaren Zweigen mit libgit 2 zu zeigen. Meine Idee war es, git_revparse (& spec, Repo, "Herkunft/Master..master"); aber das gibt mir eine git_revspec und ich weiß nicht, wie dies zu verwenden, um alle Commits zu iterieren. Ein weiteres Problem besteht darin, dass diese Methode nur für eine bestimmte Verzweigung gilt.Get unpushed commits mit libgit2

Antwort

2

Verwenden Sie die git_branch_iterator Funktionen, um alle lokalen Verzweigungen zu erhalten, und git_branch_upstream, um ihre entsprechende vorgelagerte Verzweigung zu erhalten. Dann nutzen Sie die git_revwalk Funktionen alle Commits zu Fuß über die zwischen ihnen unterscheiden. Schieben Sie den Upstream mit git_revwalk_push_ref und Ausblenden der lokalen Niederlassung mit git_revwalk_hide_ref.

Verwandte Themen