2010-12-15 102 views
3

Je suis actuellement en train de configurer StatSVN pour fonctionner dans TeamCity et je rencontre un peu un problème sur lequel j'ai besoin d'idées. Premièrement, StatSVN doit fonctionner avec un répertoire de travail qui a été extrait de SVN, il ne peut pas être exécuté contre la copie de l'application que TeamCity exporte à partir de SVN. En tant que tel, il doit effectuer une vérification svn sur le serveur de construction.svn checkout défis pour un mot de passe lors de l'exécution sans surveillance dans TeamCity

Ce que je l'ai fait est créé un fichier de chauve-souris qui gère les trois commandes requises par StatSVN pour créer le rapport, dont la première est la caisse:

svn checkout [repository path] 

Maintenant, corrigez-moi si je suis faux, mais cela devrait checkout en utilisant l'identité actuelle. Certes, il fonctionne bien directement à partir de la ligne de commande. Lorsqu'il s'exécute dans TeamCity, le runner de construction est configuré pour s'exécuter sous un accout de service qui a des droits identiques à moi dans SVN. En fait, le même compte de service est utilisé pour créer des référentiels et des structures de répertoires par défaut, donc je n'ai aucun doute qu'il a les droits.

Cependant, chaque fois que la construction fonctionne il se bloque et après l'avoir arrêté, il est évident pourquoi:

[13:38:28]: C:\TeamCity\buildAgent\work\e8d4dc4070ecf602>svn checkout [repository path] 
[13:38:29]: Authentication realm: <[svn server]> Subversion Repositories 
[13:38:38]: Password for '[service account]': 
[13:38:38]: Process exited with code 1 

Il semble être suspendu et en attente d'un mot de passe, il ne peut évidemment pas obtenir en cours de fonctionnement sans surveillance. Est-ce que quelqu'un a des idées sur la raison pour laquelle cela se produit?

Mise à jour: La commande suivante requise par StatSVN est un "svn log" qui sauvegarde l'historique de validation. Même si vous pouvez résoudre le problème de svn checkout en configurant le mode de paiement de TeamCity VCS sur "Automatiquement sur l'agent", il en résulte une extraction réelle plutôt qu'une exportation (c'est certainement préférable à une commande manuelle), la commande "svn log" présente toujours le même problème.

Répondre

2

serait-il possible de résoudre ce problème en changeant le checkout sur teamcity d'être "côté serveur" (export) vers côté client (checkout) ..? alors vous obtiendrez tous vos dossiers svn. Vous pouvez ensuite les exclure de votre build (nant ou msbuild) afin qu'ils ne soient jamais inclus dans votre dossier de projet construit.

Je sais que cela ne répond pas directement à votre question, mais cela pourrait résoudre votre problème actuel.

+1

Vous avez fait un très bon point et c'est certainement préférable à une commande "svn checkout" manuelle.Malheureusement, StatSVN a encore besoin que vous exécutiez une commande "svn log" pour que le problème passe juste à l'instruction suivante. –

4

Vous pouvez au moins arrêter de demander l'entrée à l'aide

svn checkout --non-interactive 

Cela ne résoudra pas le problème qu'il ne connaît pas l'utilisateur, mais pourriez-vous donner plus d'informations sur ce qui ne va pas

1

Probablement trop tard pour aider le PO, mais j'ai rencontré un problème similaire lors de l'exécution des contrôles. svn demande continuellement un nom d'utilisateur et un mot de passe, bien qu'ils soient fournis avec les commutateurs --username et --password. Lorsque le commutateur --non-interactive a été ajouté (selon la suggestion de Sander Rijken) svn a répondu que le mot de passe était incorrect. En réalité, le mot de passe était correct mais contenait des caractères qui n'étaient pas correctement échappés.