Question

En utilisant Subversion, dans ma copie de travail que je fais une petite modification (mise à jour un numéro de version). Je voudrais alors marquer ma copie de travail. Est-ce que cette balise encore une copie pas cher avec la modification, ou serait SVN dupliquer les fichiers? Je ne voudrais pas voir mon dépôt croître énormément en taille parce que je suis en train d'enregistrer un changement de numéro de version.

La raison pour laquelle je demande de créer une étiquette qui contient une modification plutôt que de commettre ensuite le marquage implique mon serveur de build. Le serveur de build crée un CCNetLabel que j'utilise pour mettre à jour les numéros de version de mes projets (AssemblyInfo.cs). Lorsque la construction est réussie, il crée une balise. Lorsque j'utilise ForceBuild la balise est basée sur la copie de travail qui contiendrait le numéro de version modifiée. Je veux l'étiquette pour contenir le numéro de version appropriée.

Note:. On peut se demander si je crée une branche ou une étiquette, mais SVN ne fait pas de distinction entre les deux

Était-ce utile?

La solution

Cela dépend. Si votre copie de travail est à jour (tous les noeuds ont la même version), il est tout aussi pas cher que le marquage à partir du référentiel.

Pour chaque fichier / répertoire (ou en fait sous-arbre) avec une autre révision de ses données supplémentaires parents seront ajoutés. Et si vous avez des modifications locales encore plus de données seront ajoutées.

Mais il est encore raisonnable pas cher. Il ne dédouble pas les fichiers qui sont déjà dans le référentiel

Autres conseils

De la description de la subversion

  
      
  • et le marquage sont Branching opérations bon marché (temps constant).   Il n'y a aucune raison pour que ces opérations soient coûteuses, donc ils ne sont pas.   Les branches et les étiquettes sont à la fois mis en œuvre en termes d'une opération « copie » sous-jacente. . Une copie prend une petite quantité constante d'espace Toute copie est une étiquette; et si vous commencez à commettre sur une copie, il est une branche aussi bien. (Cela supprime « le marquage branche point » de CVS, en supprimant la distinction qui a fait des balises branche points nécessaires en premier lieu.)
  •   

Remarque Je viens de remarquer que Subversion a été déplacé dans le projet Apache organisation

Création d'une balise ou une branche dans la subversion est vraiment pas cher. Les fichiers ne seront pas copiés. Tout ce qui arrive est que sera créé, dont le contenu contient fondamentalement juste un pointeur à l'endroit où la balise a été copiée à partir d'une nouvelle révision. Ce sera la même taille pour une étiquette d'un projet avec un petit fichier ou un avec un million de gros.

Quand vous dites « tag ma copie de travail », voulez-vous dire « tag ma branche de travail »? Vous ne pouvez marquer les données qui ont déjà été engagés dans le dépôt quelque part, vos modifications locales non engagés.

Tout à fait une sortie de poste de date, mais utile de mentionner pour toute personne en visite que la réponse indiquant que vous ne pouvez « Vous ne pouvez marquer les données qui ont déjà été engagés dans le référentiel ... » travail engagé n'est pas tout à fait exact (du moins pas maintenant).

Vous pouvez marquer une copie de travail, qui pourrait contenir des révisions mélangées et même des répertoires commutées ainsi que des modifications locales.

Quant à bon marché, oui, il devrait encore être pas cher comme Subversion branche pour vous, alors superposer vos modifications de copie de travail dans le repo, économiser autant d'espace que possible

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top