288 votes

Comment faire pour créer correctement un tag svn du tronc ?

Je suis entrain de créer mon premier projet de subversion. Jusqu'à présent j'ai

 branches 
 tags 
 trunk

Je pense que j'ai immédiatement besoin pour faire les branches du singulier et de recommencer. Mise à jour des branches est la norme.

J'ai fait un travail dans le coffre et en déplaçant le contenu de balises comme suit


 mkdir tags/1.0
 cp-rf trunk/* tags/1.0
 svn add tags/1.0
 svn commit -m "créer un premier tagged version"


Mon instinct me dit que c'est totalement faux et que je devrais maintenir un certain lien entre les fichiers en utilisant svn copy. Les fichiers que j'ai créer de cette manière, vous n'avez aucune relation les uns avec les autres et je suis sûr que je vais manquer de subversion fonctionnalités. Suis-je la corriger?

Dois-je utiliser svn copy pour les fichiers individuels?

 mkdir tags/1.0
 svn add tags/1.0
 svn copy trunk/fichier1 tags/1.0
 svn copy trunk/fichier2 tags/1.0
 svn copy trunk/fichier3 tags/1.0
 svn commit -m "créer un premier tagged version"

Dois-je utiliser svn copie sur l'ensemble de l'annuaire?

 svn copy cp-rf tronc tags/1.0
 svn commit -m "créer un premier tagged version"

428voto

victor hugo Points 16700

Il suffit de faire

188voto

unwind Points 181987

Vous avez raison ce n'est pas "droit" pour ajouter des fichiers à la tags dossier.

Vous avez correctement deviné qu' copy est l'opération à utiliser; il vous permet de Subversion de garder une trace de l'histoire de ces fichiers, et aussi (je suppose) de les stocker de manière beaucoup plus efficace.

Dans mon expérience, il est préférable de faire des copies ("snapshots") de l'ensemble des projets, c'est à dire tous les fichiers à partir de la racine de check-out de l'emplacement. De cette façon, l'instantané peut se tenir sur son propre, comme une vraie représentation de l'ensemble du projet à un moment donné dans le temps.

Cette partie de "le livre", montre comment la commande est généralement utilisée.

14voto

Alexander Amelkin Points 192

Comme le fait remarquer @victor hugo, la "bonne" façon est d'utiliser svn copy. Il y a une mise en garde, cependant. Le "tag" créé de cette façon ne sera pas un vrai tag, il sera une copie exacte de la révision, mais il sera différent révision elle-même. Donc, si votre système de construction permet l'utilisation de révision svn en quelque sorte (par exemple, intègre le nombre obtenu avec svn info " dans la version de le produit que vous), alors vous ne serez pas en mesure de construire exactement le même produit à partir d'une étiquette (le résultat sera la révision de la balise au lieu de celui de la code d'origine).

Il ressemble par sa conception il n'existe aucun moyen dans le svn pour créer un vraiment bon de la balise meta.

12voto

Gromer Points 6234

7voto

MOK9 Points 311

@victor hugo et @détendez-vous sont corrects, et victor de la solution est de loin la plus simple. Cependant MÉFIEZ-vous des alias dans votre projet SVN. Si vous faites référence à des bibliothèques externes, à l'extérieur de la révision de référence (si une étiquette, ou à la TÊTE, ou le nombre) restera inchangé lorsque vous étiquetez les répertoires qui ont des références externes.

Il est possible de créer un script pour gérer cet aspect de marquage, pour une discussion sur ce sujet, voir cette SORTE d'article: Marquage d'un SVN checkout avec des externes

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X