7
votes

SVN - Lorsque vous marquez une copie de travail, c'est toujours une copie bon marché?

Utilisation de Subversion, dans ma copie de travail, je fais une modification mineure (mettre à jour un numéro de version). Je voudrais alors étiqueter ma copie de travail. Cette balise serait-elle toujours une copie bon marché avec la modification ou SVN Dupliquer les fichiers? Je détesterais voir mon référentiel grandir énormément en taille parce que j'essaie d'enregistrer un changement de numéro de version.

La raison pour laquelle je pose des questions sur la création d'une balise contenant une modification plutôt que de vous obliser, puis du marquage implique mon serveur de construction. Le serveur de construction crée un CCnetLabel que j'utilise pour mettre à jour les numéros de version de mes projets (AssemblyInfo.cs). Lorsque la construction réussit, cela 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é. Je veux que la balise contienne le numéro de version approprié.

Remarque: il est discutable si je crée une succursale ou une balise, mais SVN ne fait pas de distinction entre les deux.


0 commentaires

4 Réponses :


1
votes

Créer une balise ou une branche en subversion est très bon marché. Les fichiers ne seront pas copiés. Tout ce qui se produit, c'est qu'une nouvelle révision sera créée, dont le contenu contient fondamentalement un pointeur sur l'endroit où la balise a été copiée. Ce sera la même taille pour une balise d'un projet avec un petit fichier ou pour 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 que baliser uniquement des données qui ont déjà été commises dans le référentiel quelque part, pas de vos modifications non engagées locales.


1 commentaires

Je veux dire baliser ma copie de travail. Le processus sera: SVN Update, Mettre à jour le numéro de version dans la copie de travail, générer une balise à partir de la copie de travail. L'objectif est la sauvegarde des informations de version mis à jour dans la balise (Branche plus une modification du numéro de version).



5
votes

de la description de la subversion

  • La ramification et le marquage sont des opérations bon marché (temps constante). Il n'y a aucune raison pour que ces opérations soient chères, elles ne sont donc pas. Les branches et les étiquettes sont tous deux mis en œuvre en termes d'opération «copie» sous-jacente. une copie prend une petite quantité constante d'espace. n'importe quelle copie est une étiquette; Et si vous commencez à vous engager sur une copie, c'est aussi une succursale. (Ceci éloigne le "marquage du point de branche" de CVS, en supprimant la distinction qui a fait des balises de point de branche nécessaires en premier lieu.)

    note! Je viens de remarquer que Subversion a été déplacé dans le projet Apache Organisation


0 commentaires

5
votes

Cela dépend. Si votre copie de travail est à jour (tous les nœuds ont la même révision), il est tout aussi bon marché que le marquage du référentiel.

Pour chaque fichier / répertoire (ou sous-compréhension) avec une révision différente de ses données supplémentaires parent sera ajoutée. Et si vous avez des modifications locales encore plus de données seront ajoutées.

Mais il est toujours raisonnable pas cher: il ne peut pas dupliquer aucun fichier déjà dans le référentiel.


2 commentaires

Excellent, ma préoccupation était que cela peut dupliquer tous les fichiers. Il semble que l'étiquetage de la copie de travail soit à peine plus importante que de marquer une succursale sur le serveur. Maintenant, si je pouvais dire à Croisière Control .net de ta tagser toujours ma copie de travail ... groups.google.com/group/ccnet-devel/browse_thread/thread/...


Si j'ai un répertoire "A" dans ma copie de travail et je marquais cela. Je comprends que ce sera une copie bon marché dans le référentiel. Cependant, plus tard sur I Supprimer "A" de mon répertoire de travail. Que va-t-il arriver à la copie bon marché? Aura-t-il toujours "A" disponible?



2
votes

Tout à fait obsolète, mais il convient de mentionner pour que quiconque visitent que la réponse indiquant que vous ne pouvez que "Vous pouvez uniquement taguer des données qui ont déjà été commises dans le référentiel ..." Le travail engagé n'est pas complètement précis (du moins pas Maintenant).

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

Comme pour le pastant, oui, il devrait toujours être peu coûteux que Subversion puisse branche pour vous, puis superposez votre copie de travail dans le repo, enregistrant autant d'espace que possible


0 commentaires