Das Git-Plugin für Hudson funktioniert gut. Das Build-Skript muss jedoch eine Versionsnummer in den Dateien im Repository aktualisieren, festschreiben und zurück an das Repository senden.Hudson Endlosschleife für Änderungen in Git-Repository abrufen?
Wenn Hudson als nächstes nach Änderungen sucht, geht es in eine Endlosschleife, weil es sieht, dass Commit als eine "Änderung" erneut erstellt wird, die eine Änderung festschreibt, so dass sie erneut erstellt, dann eine andere Änderung festlegt usw. .. Du hast die Idee.
ich es gestoppt, lief in jedem Repository ein "git log" und verglichen die neuesten Commit-IDs sind genau die gleichen mit git ls-tree HEAD
Auch läuft Hudson diesen Befehl auf Änderungen zu überprüfen:
git fetch + refs/heads/: refs/remotes/origin/ git ls-tree HEAD
Seit Hudson selbst schob die von seinem Arbeitsplatz Repository begehen, und es scheint, der ls-Baum Ergebnisse Spiel wie kann Dieser Befehl bestimmt, dass es eine Änderung gegeben hat?
Es scheint, dass es die Ergebnisse von ls-tree speichern muss, bevor Sie den Build erstellen und mit dem vergleichen, der nicht das letzte Commit haben wird. Ah. Ich kann versuchen, das Commit abzuschalten, um diese Theorie zu testen.
Wie auch immer, anstatt irgendein Problem im Git-Plugin für Hudson zu beheben, was kann ich tun, um am Ende meines Builds sicherzustellen, dass die Repos identisch sind und dass Hudson es so sehen wird.
Wie behebt man das? Irgendwelche Ideen?
Wayne
Sicher genug. Wenn das Commit auskommentiert ist und das Skript nur an einige Repositories gesendet wird, funktioniert es ordnungsgemäß. Das heißt, Hudson erkennt, dass keine Änderungen vorgenommen wurden, und wartet auf Änderungen ohne Schleifen. So, wie man die Endlosschleife stoppt. Es scheint, dass das Git-Plugin für Hudson den Repo-Zustand nach dem ersten Abruf für den Build speichert. Aber es scheint, dass es den Repo-Zustand nach einem erfolgreichen Build wieder speichern sollte, falls der Build einen Commit ausführen sollte - oder zumindest als Option geben sollte. Jeder Körper haben eine einfachere, schnellere Idee, dies zu lösen? – Wayne
Oh, ich habe eine Abzweigung des Git-Hudson-Plugins auf GitHub gefunden, wo jemand anders bereits die Handhabung dieser Situation hinzugefügt hat. Ich lade und baue und werde es versuchen. Wiederum, wenn jemand eine bessere Lösung hat, bitte beraten. Ich poste zurück, wenn das es löst. – Wayne