Ich möchte überprüfen, ob ich die neueste Version des Programms habe. Ich habe mein Programm auf bitbucket.org geteilt, und ich möchte, dass mein C++ Code mir schreibt, wenn ich die neueste Version holen muss, oder ich habe bereits die neueste Version.Wie kann ich überprüfen, ob Pull mit libgit2 in C++ benötigt wird?
1
A
Antwort
1
Zuerst müssen Sie abrufen, um den Status der Remote-Tracking-Zweige zu erhalten. Es gibt keine andere Möglichkeit zu überprüfen, ob Ihre Niederlassung auf der Fernbedienung aktualisiert wurde. Viele Tools holen sich automatisch periodisch (wie alle 10 Minuten) zu diesem Zweck.
Dann vergleichen Sie Ihren lokalen Zweig mit seinem Upstream. Eine Möglichkeit, dies mit libgit2 zu tun, ist die Verwendung der revwalk
-Funktionalität. Wenn Sie git_revwalk_push_ref
den Upstream und git_revwalk_hide_ref
den lokalen Zweig dann über den Bereich gehen, können Sie zählen, wie viele Commits hinter Ihrem lokalen Zweig ist. Tun Sie das Gegenteil, um die Anzahl der Commits zu erhalten.
Beispiel:
git_revwalk *walker;
git_revwalk_new(&walker, repo);
git_revwalk_push_ref(walker, "refs/remotes/origin/master");
git_revwalk_hide_ref(walker, "refs/heads/master");
git_oid id;
int count = 0;
while (!git_revwalk_next(&id, walker))
++count;
// 'count' is the difference between remote and local
Verwandte Themen
- 1. Wie kann ich überprüfen, ob ein Element mit Winkelmesser in angular2 benötigt wird?
- 2. Wie kann ich überprüfen, ob ein Windows-Dienst ausgeführt wird
- 3. Wie kann ich überprüfen, ob in AUTOLISP SHIFT gedrückt wird?
- 4. Überprüfen, ob ein Eingabefeld mit jQuery benötigt wird
- 5. Wie kann ich überprüfen, ob TLS 1.2 in C#
- 6. wie kann ich überprüfen, ob ein Objekt C existiert in ++
- 7. Überprüfen, ob ich die Datei entfernen kann
- 8. Wie wird eine Eigenschaft in C# benötigt?
- 9. Überprüfen, ob eine Taste in der Konsolenanwendung gedrückt wird C#
- 10. Wie kann man überprüfen, ob Datensatz existiert in C# ist
- 11. Wie kann ich überprüfen, ob Int in Array vorhanden ist?
- 12. Überprüfen, ob Chrome läuft mit C Programm
- 13. Wie kann ich überprüfen, ob eine Funktion vom C++ - Compiler als Inline erweitert wird?
- 14. Wie kann ich überprüfen, ob sqlplus eine Verbindung herstellen kann?
- 15. Wie kann ich sehen, warum libstC++ benötigt wird
- 16. In PHP, wie kann ich überprüfen, ob Klasse existiert?
- 17. Wie kann ich überprüfen, ob ein Buchstabe in einem String mit Python großgeschrieben wird?
- 18. Wie konfiguriere ich libgit2 in TFS Build mit privaten Repositories?
- 19. Wie kann ich feststellen, welche Plattformversion benötigt wird?
- 20. Wie kann ich überprüfen, ob Anfrage Beitrag in Zend Framework
- 21. Überprüfen Sie, ob ein Dienst mit C
- 22. Wie kann ich überprüfen, ob alles in einem div geändert
- 23. Überprüfen, ob ALPN unterstützt wird
- 24. C# DataGridView Überprüfen, ob leer
- 25. Wie kann ich diese Nummern überprüfen? C#
- 26. Wie kann ich feststellen, ob ein neues Docker-Image ohne Docker Pull verwendet wird?
- 27. Kann ich überprüfen, welche Version mein PS Script benötigt?
- 28. Wie kann ich überprüfen, ob ein Zertifikat selbstsigniert ist?
- 29. Wie kann ich überprüfen, ob eine E-Mail-Adresse existiert?
- 30. Wie kann man überprüfen, ob Textview ist Android ellipsized wird
Okay, aber zum Beispiel git_revwalk_push_ref Funktion besitzt zwei Parameter: 1, git_revwalk * zu Fuß ||||| 2, const char * refname ||||| was soll ich als refname übergeben? –
Ich habe die Daten bereits abgerufen und ich brauche ein Äquivalent davon in libgit2: git diff –
Ich habe ein Beispiel hinzugefügt. –