2 Stimmen

CruiseControl.net und Subversion

Mein Projekt bemerkt nicht, wenn Subversion aktualisiert wird. Ich habe genau dasselbe Setup auf einem anderen Server funktionieren. Dies ist ein virtueller Server.

Hier ist meine Protokolldatei, nachdem ich eine Änderung vorgenommen habe. Es scheint, dass ccnet sehen kann, dass ein Update vorhanden ist, aber es endet nur damit, dass keine Änderungen erkannt wurden.

2009-12-17 10:34:47,000 [MyProjectName Continuous Integration:INFO] Projekt: 'Mein Projektname Continuous Integration' ist das erste in der Warteschlange: 'Mein Projektname Continuous Integration' und soll mit der Integration beginnen.
2009-12-17 10:34:47,000 [MyProjectName Continuous Integration:DEBUG] Überprüfung, ob C:\Program Files\CruiseControl.NET\server\MyProjectName Continuous Integration\WorkingDirectory ein SVN-Arbeitsordner ist
2009-12-17 10:34:47,000 [MyProjectName Continuous Integration:DEBUG] Starten des Prozesses [svn] im Arbeitsverzeichnis [C:\Program Files\CruiseControl.NET\server\MyProjectName Continuous Integration\WorkingDirectory] mit Argumenten [log svn://myserver.com/trunk -r "{2009-12-16T21:19:48Z}:{2009-12-17T17:34:47Z}" --verbose --xml --username myusername --password mypassword --non-interactive --no-auth-cache]
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] 
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] 
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] 
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] myusername
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] 2009-12-16T18:34:50.148524Z
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] 
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] /trunk/MyProject/MyFile.cs
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] 
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] 
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] 
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] 
2009-12-17 10:34:47,312 [MyProjectName Continuous Integration:INFO] Keine Änderungen erkannt.

3voto

zachary Punkte 8794

Ich konnte das beheben, indem ich auf das neueste ccnet aktualisiert habe. Sie verwenden Revisionen anstelle von Daten, um den Trigger zu aktualisieren. Danach hat alles einfach funktioniert.

2voto

Ross Patterson Punkte 9392

Sie haben keine Änderungen, Sie denken nur, dass Sie welche haben. Dies ist ein klassisches Problem mit Subversion, dem viele CC.NET-Benutzer zum Opfer fallen. Sehen Sie sich den Log genauer an und Sie werden sehen:

  • Der SVN-Befehl wird am 17.12.2009 um 10:34:47 Uhr ausgeführt (vermutlich sind Sie in einer GMT-7-Zeitzone)
  • Der Bereich der überprüften Änderungen liegt zwischen dem 16.12.2009 um 21:19:48 Uhr GMT und dem 17.12.2009 um 17:34:47 Uhr GMT - d.h., in den letzten 20 Stunden, mehr oder weniger
  • Die einzige gemeldete Revision stammt vom 16.12.2009 um 18:34:50.148524 Uhr GMT - VOR dem Beginn des Bereichs.

Kurz gesagt, svn log lügt, oder zumindest flunkert ein wenig, indem es IMMER mindestens eine Änderung meldet, selbst wenn sie älter ist als der angegebene Bereich. Siehe SVN-Bug #1642, wenn Sie die Details wissen wollen. Die Chancen stehen gut, dass es nie behoben wird - der letzte Kommentar stammt aus dem Jahr 2004.

Dies ist im CC.NET-Dokument erklärt:

CruiseControl.NET sieht meine Änderungen nicht

Die Subversion-Schnittstelle hängt davon ab, dass die Uhren der CruiseControl.Net- und Subversion-Server auf eine kleine Differenz eingestellt sind. Aufgrund eines langjährigen Subversion-Bugs (Bugzilla #1642), der anscheinend unwahrscheinlich ist jemals behoben zu werden, muss CruiseControl.Net die Liste der von Subversion zurückgegebenen Änderungen filtern und nur nach denen suchen, die innerhalb eines bestimmten Zeitraums liegen. Wenn die Uhren der beiden Server signifikant unterschiedlich sind, kann der Filter Änderungen ignorieren, die nicht ignoriert werden sollten. Um dieses Problem zu vermeiden, sollten die Uhren der beiden Server so nah wie möglich zusammengehalten werden.

0voto

tangens Punkte 37853

Läuft Ihr virtueller Server mit einer zukünftigen Zeit? Vielleicht sollten Sie eine Zeit-Synchronisation versuchen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X