Frage

Die git-Plugin für hudson funktioniert gut. Allerdings muss der Build-Skript eine Versionsnummer in den Dateien im Repository aktualisieren, commit und Push zurück in das Repository.

Als nächstes Hudson Umfragen auf Änderungen zu überprüfen, geht es in eine Endlosschleife, weil sie das als „Wandel“ begehen sieht baut wieder, die eine Änderung verpflichtet, so dass es wieder aufbaut, dann ist es eine weitere Änderung verpflichtet, etc .. Sie erhalten. die Idee.

Ich hörte es, 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 holen + refs / heads / : refs / remotes / origin / git ls-tree HEAD

Seit Hudson selbst schob die von seinem Arbeitsplatz Repository begehen, und anscheinend der ls-Baum Ergebnisse entsprechen, wie kann dieser Befehl bestimmt, dass es als eine Veränderung gewesen?

Es scheint, dass es müssen die Ergebnisse der ls-Baum vor tun die Build werden die Speicherung und dem Vergleich, die haben nicht die neueste begehen. Ah. Ich kann versuchen, die sich verpflichten, Test ausschalten, dass Theorie.

Wie auch immer, anstatt fix irgendein Problem im git-Plugin für Hudson, was kann ich am Ende meiner Build tun, um sicherzustellen, dass die repos identisch sind und dass Hudson wird es so sehen.

Wie dieses Problem beheben? Irgendwelche Ideen?

Wayne

War es hilfreich?

Lösung 2

Und die Antwort ist! ...

Die Git Hudson-Plugin wurde bereits von jemandem gegabelt diese Funktion ist es gut funktioniert hinzuzufügen. Trotzdem hatte ich die Quelle nach unten zu ziehen und ein paar kleineren Problemen zu beheben.

Jetzt funktioniert es schön. Die Build-Commits und die Git-Plugin Schübe in das Repository zurück, ohne Looping, dachte, es hat sich wieder geändert.

Wonderful!

Wenn jemand anderes braucht diesen Look für die tickzoom Gabel der Hudson-GIT-Plugin auf Github.com aber überprüfen, um zu sehen, ob bereits integriert in das Hauptprojekt zurück. Die Committer sagte, er sei interessiert und Planung auf die Gabeln kombiniert werden.

Wayne

Andere Tipps

Ihr Build-System sollte keine Schreib Interaktion mit Ihrem Versionskontrollsystem. Es sicherlich nicht sollte Push diese Änderungen automatisch.

Ihr Build-System kann fragt git (via git describe, zum Beispiel), was die aktuelle Revision ist. Alles andere ist überflüssig und fehleranfällig.

Eine andere Sache, die Sie betrachten können, ist nicht Polling für Änderungen. Das scheint wie eine dumme Art und Weise zu arbeiten. (Zugegeben, ich bin ein schwer buildbot Benutzer ziemlich daran gewöhnt, mit allem auf Ereignisse ausgelöst werden.)

Die git Repo, die abgefragt werden ist weiß, wenn sie sich ändert. Es sollte nur das CI-System anweisen, einen Build sofort auf dieser Grundlage zu starten. Sie erhalten Ihre früher baut und da sie alle ausgelöst sind, haben Sie nicht Ihren Computer sitzen viel Arbeit für keinen guten Grund zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top