Table des matières
Peu importe le protocole que vous utilisez pour avoir accès à vos référentiels, vous devez toujours créer au moins un référentiel. Cela peut être fait soit avec le client de ligne de commande de Subversion soit avec TortoiseSVN.
Si vous n'avez pas encore créé de référentiel Subversion, il est temps de le faire maintenant.
Vous pouvez créer un référentiel avec le backend FSFS ou avec le format de base de données Berkeley (BDB) plus ancien. Le format de FSFS est plus rapide et plus facile à gérer, il fonctionne maintenant sur les partages réseau et sous Windows 98 sans problème. Le format BDB est considéré comme plus stable car il est utilisé depuis plus longtemps ; cependant, FSFS est maintenant utilisé depuis plusieurs années, donc cet argument est dépassé. Lisez Choosing a Data Store dans le manuel de Subversion pour plus d'informations.
Créez un dossier vide avec le nom SVN (par exemple D:\SVN\), qui est utilisé comme racine pour tous vos référentiels.
Créez un autre dossier MonNouveauRéférentiel dans D:\SVN\.
Ouvrez l'invite de commande (ou la boîte DOS), allez vers D:\SVN\ et tapez
svnadmin create --fs-type bdb MonNouveauRéférentiel
ou
svnadmin create --fs-type fsfs MonNouveauRéférentiel
Maintenant vous avez un nouveau référentiel situé à D:\SVN\MonNouveauRéférentiel.
Ouvrez l'explorateur Windows
Créez un nouveau dossier et nommez-le par exemple SVNRéférentiel
Faites un clic droit sur le dossier nouvellement créé et sélectionnez → .
Un référentiel est alors créé à l'intérieur du nouveau dossier. N'éditez pas ces fichiers vous-même !!! Si vous avez des erreurs assurez vous que le dossier est vide et qu'il n'est pas protégé en écriture.
TortoiseSVN ne permet plus de créer des référentiels BDB, cependant vous pouvez toujours le faire en ligne de commande. Les référentiels FSFS sont généralement plus aisés à maintenir et, pour des raisons de compatibilité entre les différentes versions de BDB, nous permet de maintenir plus aisément TortoiseSVN.
Pour des problèmes de compatibilité, les accès aux référentiels BDB de type file:// ne seront plus supportés dans les versions futures de TortoiseSVN, cependant l'accès à ce type de référentiel via un serveur en utilisant les protocoles svn://, http:// ou https:// sera toujours supporté. Pour cette raison, pour les référentiels destinés à être utilisés via le protocole file:// doivent être créés en FSFS.
Bien sûr, nous recommendons également de ne pas utiliser d'accès de type file://, hormis à des fins de test. Utiliser un serveur est plus sécurisé et plus fiable pour toute utilisation mutualisée.
Pour accéder à votre référentiel local vous avez besoin du chemin vers ce dossier. Souvenez-vous juste que Subversion s'attend à des chemins de référentiels dans la forme file:///C:/SVNRéférentiel/. Notez l'utilisation de slashs.
Pour avoir accès à un référentiel placé sur une partage réseau vous pouvez soit utiliser le mappage de disque, ou vous pouvez utiliser le chemin UNC. Pour les chemins UNC, la forme est file://NomDuServeur/chemin/vers/référentiel/. Notez qu'il y a seulement 2 slashs au début ici.
Avant SVN 1.2, les chemins UNC devaient être donnés dans la forme plus obscure file:///\NomDuServeur/chemin/vers/référentiel Cette forme est toujours supportée, mais n'est pas recommandée.
Ne créez pas ou n'accédez pas à un référentiel Berkeley DB sur un partage réseau. Il ne peut pas exister sur un système de fichiers distant. Même si vous mappez le disque réseau sur une lettre de disque. Si vous essayez d'utiliser Berkeley DB sur un partage réseau, les résultats seront imprévisibles - vous pouvez voir des erreurs mystérieuses tout de suite, ou il peut s'écouler des mois avant que vous ne découvriez que votre base de données du référentiel est corrompue.
Au moins en théorie, il est possible d'utiliser un référentiel FSFS sur un partage réseau en utilisant le protocole file://, ce n'est certainement pas recommendé. En fait, nous le déconseillons fortement, et ne supportons pas un tel usage.
Premièrement vous donnez le droit d'accès en écriture dans le référentiel à tous les utilisateurs, de manière à ce qu'aucun ne puisse supprimer ou rendre complètement inutilisable de quelque manière que ce soit le référentiel.
Ensuite, tous les protocoles d'échange de fichiers ne supportent pas le verouillage dont Subversion a besoin, donc votre référentiel peut être corrompu. Ca ne devrait pas arriver tout de suite, mais un jour deux utilisateurs vont essayer d'accéder au référentiel en même temps.
Troisièmement, les droits des fichiers doivent être fixés exactement de cette manière. Vous pouvez vous en tirer sur un partage Windows, mais SAMBA est particulièrement compliqué.
Les accès de type file:// sont réservés à des fins de test et de debug ou pour une utilisation mono-utilisateur. Lorsque vous voulez partager votre référentiel vous devez vraiment mettre en place un vrai serveur, et ce n'est pas aussi compliqué qu'il n'y parait. Lisez la section intitulée « Accéder au référentiel » pour guider votre choix.
Avant que vous n'importiez vos données dans le référentiel vous devriez d'abord penser à la façon dont vous voulez organiser vos données. Si vous utilisez une des dispositions recommandées, ce sera beaucoup plus facile plus tard.
Il y a quelques standards, des manières recommandées d'organiser un référentiel. La plupart des personnes créent un répertoire trunk contenant la « version principale » de développement, un répertoire branches qui contient les copies de travail paralèlles et un répertoire tags qui contient les versions stables. Si un référentiel ne contient qu'un seul projet, ces répertoires sont créés à la base du référentiel :
/trunk /branches /tags
Si un référentiel contient de multiples projets, les gens indexent souvent leur disposition par branche :
/trunk/paint /trunk/calc /branches/paint /branches/calc /tags/paint /tags/calc
...ou par projet:
/paint/trunk /paint/branches /paint/tags /calc/trunk /calc/branches /calc/tags
L'indexation par projet a un sens si les projets ne sont pas étroitement liés et si chacun est extrait individuellement. Pour des projets liés où vous pouvez vouloir extraire tous les projets en une fois, ou où les projets sont tous liés ensemble dans un unique package de distribution, il est souvent mieux d'indexer par branche. De cette façon vous avez seulement un tronc à extraire et les relations entre les sous-projets sont plus facilement visibles.
Si vous adoptez une approche de niveau supérieur /trunk /tags /branches, il va sans dire que vous devez copier le tronc en entier pour chaque branche et chaque étiquette et d'une certaine façon, cette structure offre le plus de flexibilité.
Pour les projets sans rapport vous pouvez préférer utiliser des référentiels séparés. Quand vous livrez des changements, c'est le numéro de révision du référentiel entier qui change, pas le numéro de révision du projet. Avoir 2 projets sans rapport qui partagent un référentiel peut signifier de grands écarts dans les numéros de révision. Les projets Subversion et TortoiseSVN apparaissent à la même adresse hôte, mais sont des référentiels complètement séparés permettant le développement indépendant et aucune confusion sur les numéros de génération.
Bien sûr, vous êtes libre d'ignorer ces dispositions communes. Vous pouvez créer n'importe quel sorte de variation, ce qui marche le mieux pour vous ou votre équipe. Rappelez-vous que quoi que vous choisissez, ce n'est pas un engagement permanent. Vous pouvez réorganiser votre référentiel à tout moment. Parce que les branches et les étiquettes sont des répertoires ordinaires, TortoiseSVN peut les déplacer ou les renommer comme vous le souhaitez.
Passer d'une disposition à une autre ne revient qu'à exécuter une série de mouvements côté serveur ; si vous n'aimez pas la façon dont les choses sont organisées dans le référentiel, jonglez juste avec les répertoires.
Si vous n'avez pas encore créé la structure de base de votre référentiel, vous devriez le faire maintenant. Il y a deux manière de le faire. Si vous souhaitez simplement une structure /trunk /tags /branches, vous pouvez utiliser l'explorateur de référentiel pour créer les trois répertoires (dans trois livraisons différentes). Si vous souhaitez créer une arborescence plus complexe, il sera plus simple de le faire directement sur le disque puis de l'importer dans une seule livraison, comme suit:
créez un nouveau répertoire vide sur votre disque dur
créez votre structure de dossier de niveau supérieur désirée à l'intérieur de ce dossier - n'y mettez pas encore de fichiers !
importez cette structure dans le référentiel via un clic droit sur le dossier et choisissez → Cela importera votre dossier temporaire dans la racine du référentiel pour créer la disposition de base du référentiel.
Notez que le nom du dossier que vous importez n'apparaît pas dans le référentiel, seulement son contenu. Par exemple, créez la structure de dossier suivante :
C:\Temp\Nouveau\trunk C:\Temp\Nouveau\branches C:\Temp\Nouveau\tags
Importez C:\Temp\Nouveau dans la racine du référentiel, qui ressemblera alors à cela :
/trunk /branches /tags