2009-01-12 5 views
3

J'utilise CruiseControl .NET avec le plugin de contrôle de source Subversion pour construire automatiquement notre projet.Gestion de svn locks/cleanup lors de l'utilisation de CruiseControl .NET et Subversion

Certains des projets sont la vérification automatique des modifications, mais de temps en temps la vérification échoue et CruiseControl marque .NET le projet avec une « exception »:

ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: svn: Working copy 'xxFilename' locked svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details) 

Après cela, je dois vous connecter manuellement dans le serveur et faire un nettoyage svn sur le dossier avant que le projet se reconstruise. Y at-il une solution de contournement pour cela?

Répondre

6

Le nouveau serveur Cruise Control.Net 1.4.4 possède deux propriétés supplémentaires sur le bloc de contrôle de source Subversion.

Voir CCNET Documentation - Subversion Source Control Block

Le cleanUp et rétablir les propriétés fait ce que vous voulez.

+0

Ces propriétés ne font rien d'utile à partir de la version 1.4.4.95. Voir http://groups.google.com.ag/group/ccnet-user/browse_thread/thread/f69ca9e5f1b33aff/0212e831fdf6fa8b?lnk=gst&q=+SVN+CleanUp#0212e831fdf6fa8b –

1

Un peu un kludge mais pourriez-vous créer un projet qui fonctionne sur demande et effectue un nettoyage svn?

Je sais que vous pouvez dans la version Java de CruiseControl donc je suppose que vous pouvez faire la même chose avec CC.NET.

+0

Je voudrais éviter cette solution, car elle évolue très mal lorsque le nombre de projets augmente. – mbp

0

Vous devriez pouvoir utiliser une tâche d'éditeur dans la configuration du projet. Le Project Configuration Block a une tâche publishers qui sera exécutée après chaque build. En utilisant un executable task, vous pouvez passer le statut d'intégration actuel en tant que variable d'environnement, et cela vous permettra d'utiliser un simple script ou une commande pour décider d'exécuter ou non le nettoyage svn.

Pour exemple, tout ce que vous avez besoin serait la suivante: je ne l'ai vraiment joué avec CC, ce qui est de la documentation, non:
si% CCNetIntegrationStatus% == « Exception » nettoyage svn

Avertissement expérience.

Questions connexes