Bonjour,
je souhaite utiliser un gestionnaire de version pour développer en ligne certains projets (espérant de nombreux contributeurs ;-)). Conscient que CVS est vieillissant je compte utiliser GNU-Arch ou Subversion, mais j'avoue que je ne saisit pas les différences fondamentales de ces deux outils, je suis à l'écoute de toute suggestion pour faire un choix ?
Merci.
Camille.
# Suggestions
Posté par Boa Treize (site web personnel) . Évalué à 10.
* Arch est conçu pour être complètement décentralisé. Tout le monde peut facilement créer son dépôt à partir du tien, développer un ou deux trucs (correctifs, nouvelles fonctionnalités), et toi ensuite tu peux aller choper la modif dans leur dépôt. Beaucoup plus adapté à un développement de type « open source ». Arch c'est un seul exécutable, pour le stockage c'est le système de fichiers qui est utilisé, pour l'échange de fichiers tout fait l'affaire (serveur HTTP, serveur FTP, serveur SSH, tout moyen de mettre des fichiers à disposition du monde suffit). Arch c'est aussi beaucoup de choses à apprendre (plein de commandes de bas niveau à combiner pour obtenir ce que l'on désire), une documentation pas toujours excellente (mais suffisante, quand même), un développeur principal que l'on aime ou que l'on aime pas (Tom Lord, une forte personnalité, un peu comme RMS), plusieurs forks qui se développent en parallèle (tla, baz, bazaar-ng). Puissant mais pas très facile d'approche.
* Darcs est conçu de manière similaire à Arch (développement décentralisé, utilisation du système de fichiers, partage par HTTP, FTP, mail, etc.). Il a la particularité de se débarrasser du concept de dépôt stocké à part sur le disque (tout ce dont il a besoin est stocké dans un sous-répertoire du projet), et de pouvoir réordonner les patches (composant un projet) dans tous les sens, tout en gérant leur dépendance, bien sûr -- le résultat le plus important, c'est qu'il est facile de ne prendre que les petits bouts intéressants dans une branche ou un fork, et vu que c'est très facile de faire des « forks », c'est important. Darcs est très simple, très facile à comprendre, bien documenté, très agréable d'utilisation, et très puissant (vu sa simplicité). Il souffre de quelques problèmes de performance sur des très gros projets (1 Go de source...), mais la situation s'est très nettement améliorée ces dernières semaines. Enfin bref, Darcs c'est super bien.
* Monotone, je connais pas trop, je crois que c'est bien aussi. Il utilise une base de données pour stocker les révisions, c'est le genre de truc qui me bloque un peu.
[^] # Re: Suggestions
Posté par Marc (site web personnel) . Évalué à 6.
bazaar.canonical.com et bazaar-ng.org
[^] # Re: Suggestions
Posté par -mat . Évalué à 2.
qui est un arch, mais d'abord moins ardu que arch, et corrigeant certains défauts de arch qui sont a mes yeux rédhibitoires....
[^] # Re: Suggestions
Posté par golum . Évalué à 1.
Tu peux préciser ?
[^] # Re: Suggestions
Posté par -mat . Évalué à 1.
- l'absence de gestion des binaires avec du xdelta...
- les noms de fichiers esotériques avec accolades & co...
- le portage sous windows absent ou problématique
- la génération des fichiers de arch (+bidule??) dans le répertoire courant
et l'abord difficile.... Ça paraît compliqué aux yeux des débutants
voilà...
[^] # Re: Suggestions
Posté par golum . Évalué à 4.
http://www.codeville.org/(...)
Pour des besoins minimalistes
http://www.superversion.org/(...)
Dans l'exhaustivité
http://dmoz.org/Computers/Software/Configuration_Management/Tools/(...)
Pour les comparatifs
http://zooko.com/revision_control_quick_ref.html(...)
http://www.red-bean.com/sussman/svn-anti-fud.html(...)
http://www.dwheeler.com/essays/scm.html(...)
http://linuxmafia.com/faq/Apps/scm.html(...)
http://www.onlamp.com/pub/a/onlamp/2004/01/29/scm_overview.html(...)
http://linas.org/linux/cmvc.html(...)
http://www.bazaar-ng.org/doc/(...)
et pour finir le résumé des épisodes précédents
http://linuxfr.org/2003/07/09/13201.html(...)
http://linuxfr.org/2004/02/29/15563.html(...)
http://linuxfr.org/2004/04/21/16054.html(...)
http://linuxfr.org/2004/02/10/15391.html(...)
http://linuxfr.org/2004/02/04/15330.html(...)
http://linuxfr.org/~ehoebadoag/14603.html(...)
http://linuxfr.org/2004/02/24/15522.html(...)
http://linuxfr.org/~haleakala/9121.html(...)
http://linuxfr.org/~GomGom/705.html(...)
http://linuxfr.org/~Funix/15903.html(...)
http://linuxfr.org/forums/12/4051.html(...)
http://linuxfr.org/2002/12/20/10759.html(...)
http://linuxfr.org/forums/10/2935.html(...)
http://linuxfr.org/2004/03/07/15605.html(...)
http://linuxfr.org/2002/07/24/9062.html(...)
http://linuxfr.org/~moy/15924.html(...)
http://linuxfr.org/~patrick_g/16411.html#511431(...)
Bonne Lecture
[^] # Re: Suggestions
Posté par vieuxshell (site web personnel) . Évalué à 3.
Depuis la branche 1.1.x un backend "système de fichier" (fsfs) est disponbile qui s'affranchi de ces problemes (corruption, compatibilité,...) de plus il apporte:
* un gain de perf non négligable (jusqu'a facteur 4)
* un gain de taille non négligable (taille de répository réduit jusqu'a facteur 3)
Certe mais le projet Svk (basé sur les libs de Subversion) apporte un solution à ce problème.
De plus on s'apporche de la release 1.0 (beta 2 en ce moment)
[^] # Re: Suggestions
Posté par Miguel Moquillon (site web personnel) . Évalué à 2.
Pas tout à fait. Subversion a une architecture multi- protocolaire. Actuellement, deux protocoles sont supportés à plein :
- propriétaire (svn) pour lequel il n'y a pas besoin d'un serveur HTTP (Apache, Caudium),
- WebDAV pour lequel un serveur HTTP est nécessaire comme front-end à subversion (Apache, Caudium).
Quant à son unique dépôt, je ne vois pas trop le désavantage. Dans la boite où je travaille, CVS est l'outil "standard" et il y a un dépôt pour chaque projet. Les sous-projets sont des modules.
Ce qui est intéressant dans subversion, est son esprit "à la Unix" : tout est fichier, que ce soit une branche, le tronc commun, une marque, etc.
[^] # Re: Suggestions
Posté par Boa Treize (site web personnel) . Évalué à 2.
Le désavantage, c'est qu'il faut ouvrir des droits pour chaque personne qui veut contribuer au projet, et ensuite gérer finement ses autorisations, ou lui faire confiance pour ne pas tout foutre en l'air. Un système distribué permet lui à tout un chacun de travailler dans son coin avec tous les bénéfices d'une gestion de version, et de venir contribuer quand il a quelque chose de correct (et la gestion de version n'est pas interrompue). Ceci dit, je comprends tout à fait qu'une boîte préfère Subversion.
[^] # Re: Suggestions
Posté par golum . Évalué à 1.
on a juste checkout/commit/merge
et on a pas besoin de rajouter encore une couche de push/pull entre dépots et se coltiner des noms de dépots tarabiscotté ou des hashkey.
La gestion centralisée permet de savoir qui travaille sur quoi et on mesure mieux l'avancement du projet (toutes les branches sont visibles sur le serveur et on a pas besoin de savoir où se trouve toutes les machines qui bossent sur le projet). C'est en ce sens que SVN correspond mieux au développement en société que pour des devs libres.
Par contre avec un outils décentralisé on ne peut pas se passer d'outils de bug tracking parce que on se retrouve vite à ne plus savoir qui fait quoi. Avec des doublons on disperse pas mal d'énergie
Je ne sais pas en revanche ce que vaut l'intégration entre outils de bug tracking et gestionnaires de version décentralisés.
[^] # Re: Suggestions
Posté par Boa Treize (site web personnel) . Évalué à 2.
Le quotidien de l'utilisateur de base en décentralisé reste le commit et le merge, avec quelques push/pull sur des URI fixes (et généralement stockées dans la config) ; le quotidien de l'administrateur passe de surveillance de se qui se passe dans le dépôt (ou confiance aveugle) à série de push/pull avec URI variables effectivement. (Quoi que... Avec Darcs, ce quotidien peut aussi être : réception des mails, merge.) Notons à ce niveau que les URI de Darcs sont nettement plus sympa que celles d'Arch et de Monotone.
Effectivement, un outil de tracking devient indispensable, même si l'open source se permet souvent d'être moins organisé et planifié que le commercial. À ce propos, il existe un patch pour utiliser Darcs au lieu de Subversion dans Trac.
Trac :
http://www.edgewall.com/trac/(...)
[^] # Patch darcs pour trac
Posté par niol (site web personnel) . Évalué à 2.
http://lists.edgewall.com/archive/trac/2005-January/001467.html(...)
# Hebergement
Posté par Olivier Grisel (site web personnel) . Évalué à 2.
GNA! ( http://gna.org(...) ) propose de l'hebergement gratuit de projets libres (code, docs, organisationel) avec toutes les fonctionnalités d'un sourceforge + le support de subversion et de arch.
A noter, il est aussi possible d'utiliser tout autre systeme de version qui a juste besoin d'un acces sftp et/ou http (sans serveur specifique) comme bazaar, bazaar-ng (pas encore fonctionnel mais progresse TRES vite et dans la bonne direction), ou darcs en utilisant l'espace de telechargement d'un projet gna.
# Moi aussi
Posté par Ph Husson (site web personnel) . Évalué à 3.
En fait je voudrais pouvoir gérer les droits avec des ACL, enfin du moins pouvoir gérer les droits en changeant tout simplement les droits sur le FS(et donc le support acl devrait être pas trop compliquer à implanter)
[^] # Re: Moi aussi
Posté par golum . Évalué à 1.
Cà nécessite les droits root sur la machine et souvent pas mal d'administration
Un vrai système d'ACL est celui qui est pris en charge par le gestionnaire de source , qui permet de définir des profils d'utlilsateurs (chef de projet, developpeur, intégrateurs, reviewer, ...) et dont l'administartion peut être déléguée.
Tu en as un exemple ici
http://www.opencm.org/(...)
Ce projet était vraiment prometteur, dommage qu'il soit moribond
Tu as aussi celui-ci
http://www.spectrumscm.com/(...)
(sapussaipalibreetcétrécher)
De même, avec subversion en mode Webdav tu peut faire des trucs pas trop mal.
Je ne sais pas pour les autres.
# comparatif tout fait + GUI + doc
Posté par BAud (site web personnel) . Évalué à 3.
http://wiki.gnuarch.org/SubVersionAndCvsComparison(...)
(c'est orienté vu que les gars de arch le disent eux-mêmes)
Sinon pour subversion, je vais m'y mettre et comme infos diverses dont des GUI et docs j'ai trouvé :
http://kde-apps.org/content/show.php?content=15338(...) eSVN is a KDE GUI for SVN
http://rapidsvn.tigris.org/(...) [en] GUI tool for GNU/Linux
http://svnbook.red-bean.com/(...) [en] book by O'reilly about SVN
https://svnhost.gi.polymtl.ca/utilisationSVN.html(...) [fr] user guide for subversion (create repository...)
Pour arch ça m'intéresserait aussi, vu que sur gna ya aussi...
[^] # Re: comparatif tout fait + GUI + doc
Posté par Boa Treize (site web personnel) . Évalué à 2.
Pas forcément puisque c'est un wiki ouvert à tous. Je me souviens d'un moment (il y a un an environ) où un fan de Subversion venait quotidiennement ajouter le moindre truc bénéfique à Subversion en le plaçant au même niveau que des fonctionnalités plus importantes, et voulait enlever certains détails pas intéressants (de son point de vue bien sûr). Enfin bref, toujours lire plusieurs sources, et pas qu'une page d'un wiki...
# étude comparative
Posté par Louis Nyffenegger . Évalué à 3.
Je n'ai pas tout lu mais j'utilise maintenant subversion depuis un peu plus d'un mois et j'en pense :
-> le passage par le web, c'est vraiment pratique (firewall)
-> la gestion facile des move et des delete ( par rapport à CVS qui est tout pourri sur ce point)
-> le plugin eclipse subversion est très bien fait
En espérant que ça a pu t'aider.
[^] # Re: étude comparative
Posté par golum . Évalué à 2.
Si on travaille sur 2 branches en parallèle, svn ne garde pas de trace des derniers merge et on peut se retrouver avec le même patch appliqué plusieurs fois en des endroits différents du code.
Pour contourner, il faut donc retenir soi même les versions correspondant au dernier merge et n'appliquer que les patchs depuis cette version.
La mémoire de merge est prévue pour la 2.0 je crois.
Un avantage de SVN est qu'il s'intègre bien avec des outils de suivi des demandes de changement (issue tracking).
De même sa gestion des révisions est particulièrement astucieuse et efficiente.
Svn historise le projet et lui affecte un numéro de révision.
Chaque modification de fichier créé une nouvelle configuration (révision) mais tout se passe comme si tous les fichiers et répertoires inchangés etaient pointés par des liens symboliques et seul les fichiers modifié sont vraiment nouveaux . L'algorithme permet donc de créer un nouvelle branche de dev ou de répérer configuration (release) en O(n) à comparer à la lenteur d'autres outils y compris propriétaires comme perforce ou clearcase.
Pour l'aspect distribué, il est prévu à terme d'en produire une version distribuée.
On peut toujours développer dans son coin mais on ne peut pas historiser de version intermédiaire. Ca n'est vraiment un inconvénient que lorsque qu'on veut impléménter plusieurs changements à la suite et les livrer en un bloc.
De même on peut toujours revenir au code initial en local sans accès serveur (svn revert)
Si on veut vraiment une version distribuée, on dispose de svk.
par contre il faut aimer hacker le perl si on veut contribuer
# Merci
Posté par mammique . Évalué à 2.
Merci.
Camille.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.