2010-08-03 6 views
0

J'ai une configuration de serveur SVN à la maison qui est actuellement utilisée par 3 personnes dont moi. J'ai quelques branches et étiquettes de/du coffre. Tous les utilisateurs ont extrait le référentiel complet, qui inclut le tronc, la branche, les tags. Maintenant, quand une nouvelle étiquette est faite d'une version stable, tous les utilisateurs mettent à jour leurs étiquettes. C'est là que le problème que j'ai commence. Beaucoup de fois, beaucoup de fichiers sont laissés inchangés dans la jonction, et étiquetés comme une version stable quand la liste des bogues pour cette version est fixée. Lorsque la mise à jour démarre, SVN récupère tous les fichiers, y compris ceux qui n'ont pas été modifiés, du serveur. Il faut aussi beaucoup de temps pour mettre à jour l'étiquette.SVN Tag/Branch Mises à jour

Je voudrais savoir s'il existe un moyen d'obtenir subversion pour obtenir tous les fichiers du tronc local, le mettre dans la nouvelle étiquette, puis mettre à jour le tag et remplacer uniquement les fichiers qui ont changé. Donc, si le répertoire du tronc est:

tronc
- Art
- Moteur
--- Graphics
--- Physique // MODIFIÉ
- SFX
--- Dialogue

et Je l'étiquette, svn peut-il copier tous les dossiers du tronc dans la nouvelle étiquette, et puis met à jour l'étiquette en conséquence?

Une solution que je connais est d'exporter le tronc, puis mettre à jour le tag. Y a-t-il un meilleur moyen par hasard?

Répondre

0

La réponse que je cherchais est d'utiliser le commutateur SVN - une caractéristique de SVN que je ne connaissais pas.

rlovtang a répondu à une question, mais dans un commentaire. Une fois qu'il répond officiellement à la question, je vais passer la coche à sa réponse.

3

Pourquoi les utilisateurs doivent-ils extraire le référentiel complet? La chose normale à faire est de vérifier yourrepo/trunk ou/yourrepo/branches/yourbranch.

Si, pour une raison ou pour une autre, vous souhaitez extraire le répertoire racine, je suppose que vous pouvez accomplir ce que vous demandez en copiant le tronc sur tags/yournewtag, puis utilisez 'svn switch' sur ce tag.

+0

Je deuxième réponse @ rlovtang. Si vous devez rechercher une branche ou une étiquette spécifique à côté du tronc, faites-le à la demande, alors vérifiez-les séparément. – jeroenh

+0

Je suis d'accord mais ce n'est pas le problème auquel je suis confronté. Lorsque quelqu'un extrait une balise, marquée Release1.0, puis après un certain temps Release1.1 qui contient plusieurs des mêmes fichiers intacts que Release1.0, pourquoi gaspiller de la bande passante et du temps à copier des fichiers qui ne sont pas différents de la version précédente lorsque vous avez déjà ces fichiers? Ce serait une bonne fonctionnalité si SVN copiait les fichiers locaux sur la nouvelle balise en premier (s'il y en a) et les mettait à jour à la nouvelle révision. Je suppose que je devrais repenser la façon dont ma malle est disposée. – Samaursa

+1

@Samaursa jetez un coup d'œil à svn switch. http://svnbook.red-bean.com/fr/1.5/svn.branchmerge.switchwc.html – rlovtang

0

Sauf si vous avez besoin de travailler dans la balise, ce que vous ne devriez probablement pas faire, vous n'avez même pas besoin d'une copie locale. Il suffit de faire une URL pour copier l'URL svn, quelque chose comme "svn copy http://svn/repo/trunkhttp://svn/repo/tags/mytag". Plus vite.

Si vous parlez d'une branche, je ferais la même chose, mais ensuite la caisse pour travailler dessus.