2009-12-30 3 views
3

J'essaie d'étiqueter une version qui est faite de plusieurs checkouts comme ceci:TeamCity étiquetage Subversion

+Root
+-trunk
+--Folder1
+--Folder2
+-Tags
+--ProjectA
+---Build-123
+----Folder1
+----Folder2

où 123 Build-123 est le numéro de build.

Je suis en train de le faire en utilisant les règles d'étiquetage suivantes:

/Root/trunk/Folder1=>/Root/tags/ProjectA
/Root/trunk/Folder2=>/Root/tags/ProjectA

Et ce modèle d'étiquetage:

BUILD-%system.build.number%

J'espérais que TeamCity créerait la balise BUILD-123 et Copiez le contenu de Folder1 et Folder2 dans celui-ci. Cependant, je reçois l'erreur suivante:

Failed: Failed to set label 'BUILD-123': Svn labeling failed: Cannot copy 'Root/trunk/Folder1', 'Root/trunk/Folder2' to the same directory 'Root/tags/ProjectA/CO-BUILD-123'

J'utilise TeamCity 5 avec Subversion 1.6

Répondre

0

Cela semble être une limitation du côté SVN. La seule solution que j'ai trouvé est d'appeler SVN directement pour créer le dossier de destination en premier (mkdir) puis d'utiliser svnCopy pour copier chaque source dans ce dossier.

0

S'il vous plaît lire TeamCity's docs sur ce sujet:

Je suppose que vous avez besoin des règles comme

/Root/trunk=>/Root/Tags/ProjectA 

ou

/trunk=>/Tags/ProjectA 

selon l'endroit où vous racine du référentiel est.

0

Il semble que nous devons avoir des règles d'étiquetage telles que

trunk => tags  # the trunk contains the root of my project 
branches/*/ => tags # a branch usually contains the a copy of the root of the project 
tags/*/ => tags  # a tag usually contains the a copy of the root of the project 

cela permettra de (re) branches de marquage et des étiquettes sans définir explicitement leur nom. Malheureusement TeamCity n'a pas de telles règles génériques