Quelle est la différence entre une balise et une twig dans SVN?

Je travaille avec les twigs SVN et TRUNK depuis des années, mais jamais avec les TAG

Quelqu’un peut-il conseiller quelle est la principale différence entre ceux-ci? Quel est le but principal du marquage?

Ceci est de http://svnbook.red-bean.com/en/1.5/svn.branchmerge.tags.html

Mais attendez un instant: cette procédure de création de tags n’est-elle pas la même que celle utilisée pour créer une twig? Oui, en fait, c’est le cas. Dans Subversion, il n’y a pas de différence entre un tag et une twig. Les deux ne sont que des répertoires ordinaires créés par la copie. Tout comme avec les twigs, la seule raison pour laquelle un répertoire copié est un «tag» est que les humains ont décidé de le traiter de la manière suivante : tant que personne ne s’engage dans le répertoire, il rest un instantané. Si les gens commencent à s’y engager, cela devient une twig.

Techniquement, c’est la même chose qu’une twig, mais conceptuellement, nous la prenons comme un instantané. Dans mes référentiels svn, je sais que les twigs incluront de grandes fonctionnalités qui peuvent ou non avoir été fusionnées dans la jonction, mais j’utilise les tags uniquement pour marquer les versions de publication.

La seule différence est ce que vous les utilisez, ils sont les mêmes.

Une twig est l’endroit où vous pouvez développer le travail sur une version différente du code dans le tronc principal.

Un tag est utilisé pour “marquer” une version. Disons que je travaille uniquement sur le tronc. Lorsque j’envoie un V1 à un client, je crée un “V1 Tag” pour celui-ci. Puis je travaille sur V2. Lorsque le client a un problème avec V1, je peux simplement extraire la balise et commencer à déboguer le problème sur la même version que le client. Vous pouvez enregistrer dans une balise, mais vous n’êtes pas censé le faire . Si vous avez besoin de faire une version V1.1, vous créez une twig à partir de la même version que la balise V1 et archivez les correctifs et marquez-la quand elle sera publiée en tant que V1.1.

“Trunk” et “Branches” sont généralement utilisés pour le développement actif et en cours. C’est là que les utilisateurs commettent / extraient les fichiers. C’est généralement là que beaucoup d’activités se produisent.

D’un autre côté, les “balises” sont généralement utilisées pour créer un instantané et un jalon de votre développement. Il n’est pas vraiment idéal pour votre équipe de faire des validations / des validations sur les dossiers Tag.

Voici deux exemples de l’applicabilité des tags:

  1. Archivage de twig – Lorsqu’une twig Release ou Feature a été terminée ou complètement supprimée, vous supprimez généralement la twig, ce qui la masque efficacement de la révision HEAD. Certaines personnes ne suppriment généralement pas ces dossiers pour l’archivage, car ils préféreraient voir toutes leurs versions / projets. Cela peut cependant rendre l’arbre de twig difficile à naviguer. C’est pourquoi il est préférable de ne conserver que les versions et les fonctionnalités actives et en cours d’exécution dans le dossier HEAD reivision du répertoire. Vous pouvez créer une copie Tag de la dernière révision de ces twigs archivées afin de pouvoir toujours les voir sur la révision HEAD. De cette façon, vous pouvez avoir un instantané rapide de la dernière révision de la twig avant l’archivage de la twig et conserver également les éléments dans l’arborescence des twigs.

  2. Garder les jalons – Les projets ont généralement plusieurs phases de développement. Dev, UT, QA, pré-QA, post-QA, BAT, post-BAT, PROD, pré-PROD, post-PROD. Vous pouvez utiliser des tags pour créer un instantané de votre développement à chaque étape significative au lieu de vous fier aux numéros de révision, aux dates ou aux commentaires.

Les étiquettes peuvent être d’une grande aide pour organiser les choses, mais elles peuvent parfois être chaotiques. Il est important d’avoir une convention de dénomination standard pour nommer les dossiers de balises.

Les balises et les twigs sont techniquement équivalentes. La différence réside dans la manière dont ils sont généralement utilisés.

Vous utilisez des twigs pour créer une copie modifiable du code afin de pouvoir développer une copie stable et une copie de travail en même temps.

Vous utilisez des balises pour créer une copie en lecture seule du code afin que vous puissiez facilement obtenir ce code ultérieurement. Voici comment cela est utilisé avec les versions quotidiennes. Chaque construction quotidienne crée simplement une balise avec un nom contenant ce numéro de construction. Une fois que vous avez besoin de récupérer les sources de cette version plus ancienne (par exemple, pour reproduire un bogue), vous devez simplement les exporter depuis cette balise.