Git-Log-Fehler in der kontinuierlichen Integration von PhpUnderControl

8

Also habe ich folgendes für mein PHP-Projekt eingerichtet:

  • Ein Git-Repository mit dem gesamten Code.
  • Eine Instanz von Cruisecontrol mit PhpUnderControl läuft darauf.

Ich habe ein neues Projekt im cruisecontrol-Projektverzeichnis erstellt und einen Poller eingerichtet, um alle Änderungen am git-Repo alle zwei Minuten zu überprüfen. Ich habe 2 Projekte in dieser Cruisecontrol-Instanz ausgeführt, und die erste, die ich eingerichtet habe, funktioniert gut.

Das Problem, das ich mit dem Platform-Projekt habe, sieht in den Fehlerprotokollen so aus:

%Vor%

Das Merkwürdige hier ist, dass wenn ich das Projektverzeichnis überprüfe, die Codebasis aktualisiert wird. (Ich habe mit ein paar kleinen Commits in meinem Arbeitsverzeichnis getestet.) Das Problem ist, dass dies nie einen der anderen Build-Prozesse seit Git-Fehlern ausführt.

Wenn ich direkt in das Verzeichnis projects/platform gehe und einen Git-Pull mache, funktioniert es gut. Ein ant-Build aus dem Projektverzeichnis funktioniert auch gut.

Hier sind die relevanten Konfigurationsdateien:

%Vor%

Meine Suchen auf dem Git-Fehler haben mir keinen guten Einblick gegeben, also hoffentlich kennt jemand hier!

    
alex 04.02.2010, 18:01
quelle

2 Antworten

1

Es sieht so aus, als gäbe es keine Verzweigung für git zum Auschecken. Ich weiß nicht, wie ich das sofort beheben soll, aber das könnte der richtige Weg sein.

    
user231967 15.02.2010 11:59
quelle
1

Schnellkorrektur:

Der sauberste und schnellste Weg, dies zu beheben, ist, requiredModification="false" auf dem Projekt-Tag zu setzen. Warten Sie, bis ein Build ausgelöst wird, und setzen Sie dann requireModification="true" erneut. Dies hat den Effekt, dass ein neues vorheriges Build-Datum erstellt wird, das innerhalb des Bereichs Ihrer verfügbaren Änderungen des Git-Logs liegt.

Details:

Das ist mir passiert, als ich meine Repositories in meiner Cruise-Control-Umgebung geklont habe. Dies führt zu einem Problem, bei dem die lokale Arbeitskopie der Protokolle des Repositorys nicht bis zum letzten Build zurückkehrt, den die cruisecontrol durchgeführt hat.

Was passiert, ist, dass Ihr letztes Builddatum älter ist als der älteste Änderungsdatensatz in Ihrem lokalen Arbeitsrepository :( autsch.

Dies geschieht nicht im gitbootstrapper. Dein Bootstrapper läuft gut.

Siehe: 2010-02-04 06: 07: 27,496 [Thread-14061] INFO GitBootstrapper - Bereits auf dem neuesten Stand.

Keine Fehler. Wir sind gut.

Das Problem wird von Git gemeldet, wie es von ProjectController beim Aufruf von "getModifications"

ausgeführt wird

Siehe:

2010-02-04 06: 07: 27,500 [Thread-14061] INFO ProjectController - Plattform Controller: Build Progress Event: Überprüfung auf Änderungen 2010-02-04 06: 07: 27,583 [Thread-14063] WARN Git - Warnung: Logge für '' geht nur zurück auf Di, 26 Jan 2010 13:43:11 -0500.

Der in der Git-Klasse ausgeführte Code befindet sich in net.sourceforge.cruisecontrol.Git.getModifications

Der ausgeführte Befehl lautet:

git log -p --pretty = raw @ {Zeitstempel} .. @ {Zeitstempel}

zum Beispiel: git log -p --pretty = roh @ {1292455850} .. @ {1299108639}

Das grundlegende Problem ist, dass der Parameter an den ersten Zeitstempel übergeben wird. cruisecontrol tut genau das, was er programmiert hat, aber wir bitten ihn um Änderungen zwischen Daten, die unser Repository nicht erfasst hat, wenn requireModification=" wahr ", dann wird es herunterfahren, nachdem es keine Modifikation gefunden hat!

    
Seth Griffin 03.03.2011 22:56
quelle