2009-12-15 3 views
2

Lorsque nous essayons de créer une balise d'une copie de travail, l'erreur se produit, Commit failed: File '' exists exists.Étiquetage de la copie de travail, Échec de la validation: Le fichier existe déjà

En tentant de diagnostiquer le problème et d'identifier le scénario de reconstitution compliqué suivant.

Nous disposons d'un environnement intermédiaire utilisé pour les tests et les versions AQ. Le développement n'est jamais effectué sur l'environnement de transfert et les builds sont effectués à partir des extractions SVN.

Un contrôle complet est effectué dans l'environnement de transfert et il passe par un cycle de contrôle qualité. Les bogues sont résolus dans les environnements de développement, puis les fichiers individuels sont mis à jour dans l'environnement de transfert. Lorsque la version est prête à être étiquetée dans l'environnement de transfert, la commande de la balise échoue avec la validation échouée: le fichier existe déjà.

Ce problème peut être résolu en remplissant une mise à jour SVN sur l'ensemble du répertoire, mais cela n'est pas idéal lorsqu'un nouveau code n'est pas destiné à être balisé.

Est-ce que quelqu'un d'autre a connu ou a une solution? Utilisons-nous complètement SVN?

Nous utilisons Tortoise SVN pour travailler dans notre dépôt, mais aussi les outils de ligne de commande

Répondre

1

Vous essayez de commettre (tag) une révision mixte. Tu ne peux pas faire ça.

Voir cette SO question

+0

Cela ressemble à ce que nous faisons - merci et je vais examiner plus et confirmer si c'est la réponse exacte au problème que nous avons. Il se résout également à un problème de processus de notre côté, mais ce n'était pas un problème avec CVS ​​(d'où nous venons) – Dan

+0

Merci pour cette direction! – Dan

+0

Selon [le livre SVN] (http://svnbook.red-bean.com/en/1.1/ch04s06.html#svn-ch-4-sect-6.2), commettre des révisions mixtes est très bien. – matthewwithanm

1

Quand vous faites votre chèque de serveur intermédiaire sur vous devez branche dans une branche « libération ». Marquer comme RC_version_1

Ensuite, vous travaillez sur cette branche pour le préparer. Les bogues sont résolus dans cette branche (et fusionnés dans le tronc afin que vous n'obteniez pas de bogues, ce qui est très important). Vous pouvez ensuite effectuer une validation SVN à partir de votre serveur de transfert (ou activer une machine si elle utilise cette branche comme copie de travail).

C'est comme ça que nous le faisons quand même. Les corrections de bugs à venir après la sortie peuvent être refaites à cette branche, il suffit de marquer chaque version (c'est là que votre numéro de version à la fin des balises est utile). Nous avons juste une branche de publication que nous continuons à relâcher, donc nous n'avons pas vraiment de numéro de version de candidat (RC) juste des numéros de version. Chaque fois que nous téléchargeons un site, nous l'étiquetons avec un nouveau numéro de version. Nous travaillons sur l'automatisation de ce pour le rendre un peu plus idiot. être une branche séparée

espoir qui aide

1

Cela ressemble plus comme moyen SVN de faire ce que vous faites serait pour votre « environnement mise en scène ». L'équipe d'AQ effectue son travail quotidien sur cette branche et les développeurs font leur travail quotidien sur le tronc. À mesure que les développeurs corrigent les bogues qui doivent être ajoutés au cycle d'assurance qualité, ils les fusionnent dans la branche de l'équipe d'assurance qualité. De cette façon, la copie de travail de l'équipe d'assurance qualité reste synchronisée avec le référentiel plutôt que de dériver. Ils n'ont pas besoin de craindre la commande svn update, car pour intégrer un changement, quelqu'un doit le fusionner explicitement du tronc à la branche QA. Une fois le cycle QA terminé, vous pouvez simplement copier de la branche QA vers la variable désirée.Par ailleurs, je vous suggère de faire vos tags/branches directement sur le dépôt, plutôt que sur des copies de travail. De cette façon, vous pouvez éviter la surcharge de la copie de tous ces fichiers sur le système de fichiers local.

+0

Un problème avec le balisage d'une branche directement dans le référentiel pour la production est que vous n'avez pas nécessairement indiqué exactement ce que le contrôle qualité vérifiait. Un développeur peut avoir vérifié le code dans la branche qui n'a pas encore été certifiée pour une nuit de construction particulière. – Dan

Questions connexes