2009-04-30 4 views
0

J'ai configuré un CCNET et dans l'ensemble ça fonctionne bien. Il interroge le serveur SVN et vérifie le code s'il voit des changements. Sauf, c'est-à-dire, quand il y a un checkin pendant la construction. Actuellement, le cycle de construction et de test prend environ 3 à 4 minutes, si quelqu'un vérifie le code au cours du contrôle de la version de construction, il ne reconnaît pas l'enregistrement et attend qu'il y ait une vérification après l'exécution de la compilation.Cruisecontrol.net missing checkins

Pourquoi cela pourrait-il être?

C'est la partie svn du fichier ccnet.config:

<sourcecontrol type="svn"> 
    <executable>svn.exe</executable> 
    <trunkUrl>http://*******/svn/repos/psl/AcademyPro/ASP%20.Net/trunk/</trunkUrl> 
    <workingDirectory>C:\CrusieControlProjects\AcademyPro\</workingDirectory> 
    <username>******</username> 
    <password>******</password> 
    <autoGetSource>true</autoGetSource> 
</sourcecontrol> 

Edité pour plus de clarté Le problème est de ne pas faire avec checkins atomiques. Un checkin peut terminer, CCNET construit l'application et commence à exécuter des tests. À ce stade, quelqu'un d'autre fait un autre checkin. Une fois le test terminé, je m'attendrais à ce que CCNET repère la vérification effectuée pendant le test.

Cela n'arrive pas, le checkin est manqué et une construction que j'attends est manquée.

Est-ce que ce comportement est attendu, ou ne comprends-je pas ce que disait @Jeff Mattfield?

Répondre

0

L'heure sur le serveur subversion était d'environ 2 heures à partir de l'heure sur le serveur cruisecontrol. J'ai réparé cela et checkins semblent maintenant courir beaucoup plus lisse.

1

Une validation Subversion est atomique. Il n'est pas disponible à la caisse jusqu'à ce qu'il se termine sans erreurs. La mise à jour ou la sortie d'un référentiel lors d'une validation parallèle entraîne l'état du référentiel avant cette validation. En d'autres termes, CC.NET obtient ce que le référentiel contenait après la dernière validation réussie.

0

Je n'ai jamais eu ce problème et je travaille avec SVN + CCNet depuis quelques années maintenant.

  1. Pouvez-vous publier la configuration complète du projet CCNet? Cela peut avoir quelque chose à voir avec des déclencheurs, par exemple.
  2. Quelle version de CCNet utilisez-vous?
  3. Vous dites CCNet ne détecte que les changements qui se sont produits après la construction. OK, mais lorsque vous regardez le rapport de construction du projet ("Modifications depuis la dernière version"), affiche-t-il uniquement ceux qui se sont produits après la construction précédente ou tous ceux-ci ( ?
0

Vérifiez que ccservice.exe.config/ccnet.exe.config a déboguage niveau journal:

<configuration> 
    <configSections> 
    ... 
    </log4net> 
     <root> 
     <level value="DEBUG"/> 
     <root> 
    </log4net> 
    ... 
    </configuration> 
</configSections> 

vérifier ensuite la sortie de la subversion dans le ccnet.log pour la révision de la subversion.

2009-06-05 10:34:41,816 [15336:DEBUG] [cc-config svn.exe] <logentry 
2009-06-05 10:34:41,816 [15336:DEBUG] [cc-config svn.exe] revision="1057"> 

Assurez-vous que la révision est la dernière révision avec commits sous le svn trunkUrl (http: //*******/svn/repos/psl/AcademyPro/ASP%20.Net/trunk/) chemin.

Sinon, vérifiez le journal et le fichier d'état pour plus d'informations.