Logiciel : Gérez vos dépôts subversion avec USVN
Posté par Julien Duponchelle (page perso, ). Modéré le 30 mai 2007.
Userfriendly SVN est une interface web permettant la configuration de dépôts Subversion. Cette interface permet de facilement créer de nouveaux projets sans le client en ligne de commande et donc avoir un accès privilégié sur le serveur. USVN se chargera ensuite de gérer la liste des utilisateurs autorisés à récupérer votre code source. Cela permet de déléguer l'administration de vos dépôts Subversion.
USVN permet un accès facile à la gestion fine des droits d'accès sur les fichiers de subversion. Cela permet par exemple de n'autoriser aux traducteurs des modifications que sur les fichiers de traduction en quelques clics.
Les fonctionnalités supportées par USVN pour cette version sont :
USVN permet un accès facile à la gestion fine des droits d'accès sur les fichiers de subversion. Cela permet par exemple de n'autoriser aux traducteurs des modifications que sur les fichiers de traduction en quelques clics.
Les fonctionnalités supportées par USVN pour cette version sont :
- Création et suppression de dépôt USVN
- Génération du fichier htpasswd à partir de la liste d'utilisateurs d'USVN
- Gestion fine des droits sur les fichiers sur le Subversion.
USVN (1215 hits)
Captures d'écran (1387 hits)
Site officiel de subversion (132 hits)
> Lire la dépêche (28 commentaires, moyenne: 2,3).
Vous avez demandé le commentaire #837519.




Je vois pas le rapport
USVN part du constat que Subversion est un outil fantastique, mais qu'on n'utilise qu'une partie de ses capacités. Par fainéantise, on ne crée pas toujours un dépôt par projet, mais on met tout dans le même perdant ainsi la gestion de branche et de tags. On exploite rarement aussi la capacité de Subversion à donner des droits très fins sur un fichier ou un dossier du dépôt.
Ca ne choque que moi cette partie ? Quel est le rapport entre la création d'un dépot par projet et la gestion fine ? On peut avoir plusieurs projets dans le même dépot avec les branches / tags (heureusement). De même il est possible de gérer les droits correctement dans un seul dépot.
Pour moi la création de dépôts est plus de l'ordre de l'administration système (partition, sauvegarde...) ou du découpage fonctionnel de la boite (par client, par pole d'activité..) que technique.
[^]Re: Je vois pas le rapport
ouai enfin, personnellement, je ne suis pas fan de mettre une plethore de projets dans un même dépot. Les numéros de versions (commits) n'ont alors plus de sens. Un numéro de version est censé representé un état N d'un projet. Si il y a plusieurs projets, alors pour un projet donné, il y a pleins de numéro de versions qui correspondent à un même état de ce projet.
Ça passe pour des projets de 10 lignes qu'on regroupe dans un même dépôt. Pour un projet minimum sérieux, il devrait avoir son propre dépôt.
Un exemple que je trouve justement mauvais est sur le projet KDE : je trouve la gestion de leur dépôt carrément bordélique. Je ne comprend pas l'intérêt de regrouper tous les projets dans un même dépôt. Surtout que subversion permet de lier les dépôts entre eux avec la propriété svn:externals sur les répertoires.
[^]Re: Je vois pas le rapport
Le no de révision ne devraient pas être utilisés pour reférencer des baseline du projet. Il faut utiliser les cheap copy et organiser son arborescence en conséquence (sous-répertoires branches et label) et extraire depuis ses répertoires en lecture ou en écriture.
Sinon l'interêt de séparer les dépots, c'est les performances (taille de la db) et également le fait d'eviter des fausses manips. (genre je copie la dernière version de mon projet au mauvais endroit i.e. sous l'arborescence d'un autre projet.
[^]Re: Je vois pas le rapport
Effectivement, c'est l'organisation que j'ai mis en oeuvre dans ma boîte : un dépot SVN et un Trac par projet. Ca permet d'archiver facilement d'anciens projets et je règle les droits accès pour chaque projet indépendemment.
Après la propriété svn:externals, elle est a double tranchant, par exemple quand on veut faire un tag d'un projet qui inclut du code extérieur en svn:externals.
[^]Re: Je vois pas le rapport
Quand on inclut du code extérieur en svn:externals, il est fortement recommandé d'associer un numéro de révision du projet exterieur à la propriété. Dans ce cas, la création d'un tag ne pose aucun problème.
[^]Re: Je vois pas le rapport
Je vais devoir mettre en place le meme systeme. Est-ce que tu as un pointeur sympa sur un tutoriel qui explique comment faire ?
Quand tu dis un trac par projet ca necessite de l'installer manuellement autant de fois que de projets ou c'est parametrable dans trac (creation de plusieurs instances) ?
Merci
[^]Re: Je vois pas le rapport
En fait, non, je n'ai pas de tutoriel, j'ai juste une petite note qui liste les différentes actions à effectuer :
- svnadmin pour créer un repository Subversion
- tracadmin pour créer un projet Trac que je fais pointer sur le repository Subversion
- Ajout des entrées dans la config Apache pour l'accés à Subversion d'un côté et aux pages du projets Trac de l'autre côté
- Un fichier d'authentification Apache pour l'accès à Trac et à Subversion
- Installation des scripts hooks dans le repository Subversion du nouveau projet (ce qui permet de faire le lien entre un commit Subversion et un ticket Trac)
Je n'ai rien automatiser vu que je crée un nouveau projet tous les 2-3 mois et qu'ensuite, je dois plus ou moins personnaliser les projets (composants, roadmap Trac, etc...)
[^]Re: Je vois pas le rapport
Ca ne choque que moi cette partie ? Quel est le rapport entre la
création d'un dépot par projet et la gestion fine ? On peut avoir
plusieurs projets dans le même dépot avec les branches / tags
(heureusement). De même il est possible de gérer les droits
correctement dans un seul dépot.
Nous ne disons pas que la gestion des droits fine est impossible, mais que la façon dont est faite la configuration est actuellement un peu lourde, surtout que l'on peut difficilement la déléguer, car il
faut que les utilisateurs aient les droits sur le fichier en question.
Alors que notre interface permet de le faire en quelques clics.
Pour moi la création de dépôts est plus de l'ordre de l'administration
système (partition, sauvegarde...) ou du découpage fonctionnel de la
boite (par client, par pole d'activité..) que technique.
Effectivement, c'est une manière de voir les choses qui se justifie.
Mais avec cette approche, on ne peut pas mettre de hooks propres à
un projet (enfin c'est faisable en bricolant les scripts, j'en conviens,
mais ce n'est pas très "user friendly"). Un deuxième problème est que l'on ne peut pas avoir un Trac par projet. (je sais que c'est un problème spécifique, mais dans notre utilisation c'est un problème)
En conclusion, je dirais que l'on peut tout faire avec subversion, mais
que cette souplesse a un prix qui est celui de la simplicité.
[^]Re: Je vois pas le rapport
On peut avoir plusieurs projet dans un seul dépot svn et un trac par projet.
Par contre on ne peut pas _gérer_ plusieurs dépots ni projets avec un trac (bien qu'on peut avoir un trac pour plusieurs projets dans un même dépot ... je sais pas si vous me suivez là : )
[^]Re: Je vois pas le rapport
Tiens puisqu'on en parle, est-ce qu'il est possible avec SVN de séparer une zone correspondant à un projet vers un nouveau dépôt ?
J'ai plusieurs projets dans un même dépôt et pour l'instant ça me va, mais j'aimerai avoir la possibilité à terme d'extraire un projet et de le mettre dans son propre dépôt et conservant tout l'historique, c'est possible ?
[^]Re: Je vois pas le rapport
Je suis sur que c'est faisable mais je ne suis pas sur qu'un outil le fasse actullement en automatique.
Jette peut etre un oeil a svn-mirror.
[^]Re: Je vois pas le rapport
Oui, c'est possible.
Puis supprimer ce qui dépasse dans repos2. C'est pas très propre, mais c'est le seul moyen que j'ai trouvé pour garder l'historique des révisions.
[^]Re: Je vois pas le rapport
Il y a quelques infos là-dessus dans une section du SVN book [http://svnbook.red-bean.com/nightly/en/svn.reposadmin.maint.(...)]; en plus de svnadmin il faut utiliser l'outil svndumpfilter pour ne garder que ce que l'on veut. Je n'ai jamais testé mais cela à l'air faisable sans trop de difficultés.
[^]Re: Je vois pas le rapport
Un deuxième problème est que l'on ne peut pas avoir un Trac par projet. (je sais que c'est un problème spécifique, mais dans notre utilisation c'est un problème)
Euh, pas du tout, puisque je fais comme ça tout le temps. Un projet Trac peut pointer sur n'importe quel noeud d'une arbo SVN, la racine du dépot comme un sous répertoire. Donc si tu as un projet dans /mondépot/projet1/, tu donnes à Trac ce lien comme racine du projet et ça roule. Trac est vraiment très souple.
[^]Re: Je vois pas le rapport
Effectivement autant pour moi en parcourant la doc je ne l'avais pas vu.