# CVS vs SVN



## grumff (28 Mai 2009)

Bon bah voilà, j'ouvre pas souvent des sujets par ici, mais j'avais besoin d'un petit éclaircissement là dessus, on nous parle sans arrêt de SVN comme une grosse évolution et la suite logique de CVS. Y'a un peu plus d'un an de ça on s'y était intéressé pour un projet, et ça m'avait laissé assez dubitatif.
Un soft de versionning on attend de lui qu'il gère des branches, des tags et l'historique des fichiers, le reste étant assez gadget et accessoires. Or manifestement, svn ne sait ni ce qu'est une branche ni ce qu'est un tag, donc si un casse couille décide de bosser sur un tag comme s'il était sur une branche, rien ne l'empêchera de faire n'importe quoi. Et dès qu'on veut poser un tag sur un projet qui contient quelques fichiers un peu lourds, on a le droit d'attendre 10 ans pour qu'il duplique tout, que du bonheur. Quand j'avais eu à m'y intéresser on avait assez peu de temps, donc devant ce genre de trucs on a laissé tomber tout de suite, on n'avait pas le temps de creuser.

Mais j'aimerais bien savoir s'il y a moyen d'éviter ce genre d'écueils, et savoir ce qu'apporte concrètement svn, sachant que m'aligner 500 fonctionnalité dont je me sers une fois par an, je m'en bas, ce qui importe c'est ce qui sert tous les jours ou presque, genre gérer des tags correctement.
Il y a bien le renomage des fichiers qu'est pénible sur cvs parce qu'il fait perdre l'historique, surtout au boulot où j'ai de grandes envies de refactoring en ce moment, mais passer à un soft qui m'amène des régressions par rapport au précédent, ça me plaît pas des masses.

Merci d'avance pour vos retours.


----------



## tatouille (28 Mai 2009)

grumff a dit:


> Bon bah voilà, j'ouvre pas souvent des sujets par ici, mais j'avais besoin d'un petit éclaircissement là dessus, on nous parle sans arrêt de SVN comme une grosse évolution et la suite logique de CVS. Y'a un peu plus d'un an de ça on s'y était intéressé pour un projet, et ça m'avait laissé assez dubitatif.
> Un soft de versionning on attend de lui qu'il gère des branches, des tags et l'historique des fichiers, le reste étant assez gadget et accessoires. Or manifestement, svn ne sait ni ce qu'est une branche ni ce qu'est un tag, donc si un casse couille décide de bosser sur un tag comme s'il était sur une branche, rien ne l'empêchera de faire n'importe quoi. Et dès qu'on veut poser un tag sur un projet qui contient quelques fichiers un peu lourds, on a le droit d'attendre 10 ans pour qu'il duplique tout, que du bonheur. Quand j'avais eu à m'y intéresser on avait assez peu de temps, donc devant ce genre de trucs on a laissé tomber tout de suite, on n'avait pas le temps de creuser.
> 
> Mais j'aimerais bien savoir s'il y a moyen d'éviter ce genre d'écueils, et savoir ce qu'apporte concrètement svn, sachant que m'aligner 500 fonctionnalité dont je me sers une fois par an, je m'en bas, ce qui importe c'est ce qui sert tous les jours ou presque, genre gérer des tags correctement.
> ...



http://www.selenic.com/mercurial/wiki/

http://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html


----------



## grumff (28 Mai 2009)

C'est vrai que j'avais pas trop creusé ce qui se faisait d'autre, par peur de devoir partir en croisade si j'osais suggérer un nom inconnu dans ma boite. J'en attendais pas moins de toi.  Il va falloir que je teste celui là. Je vois que mercurial est écrit en python, ça occasionne pas de problèmes de perfs ? En cherchant un peu je suis tombé sur quelques autres dont un certain git, qu'est-ce qui fait ta préférence pour mercurial par rapport à ceux là ? Te connaissant t'as du prendre le temps de les tester.

On trouve des choses niveau soft pour le gérer nativement sous windows ou avec différents environnements de dev ? Niveau plug-in Eclipse tu sais si c'est au point ? C'était quand même le gros avantage des cvs/svn d'être intégrés un peu partout.


----------



## ntx (28 Mai 2009)

grumff a dit:


> et savoir ce qu'apporte concrètement svn


La gestion de l'historique des répertoires là où CVS ne sait que gérer les fichiers dans les répertoires. Et quand tu renommes un fichier avec CVS, bonjour le mic-mac :rateau:


----------



## grumff (28 Mai 2009)

ntx a dit:


> La gestion de l'historique des répertoires là où CVS ne sait que gérer les fichiers dans les répertoires. Et quand tu renommes un fichier avec CVS, bonjour le mic-mac :rateau:


Oui mais ça je savais déjà, le problème c'est que je trouve ça un peu léger par rapport à ce qu'on y perd justement.


----------



## tatouille (28 Mai 2009)

grumff a dit:


> C'est vrai que j'avais pas trop creusé ce qui se faisait d'autre, par peur de devoir partir en croisade si j'osais suggérer un nom inconnu dans ma boite. J'en attendais pas moins de toi.  Il va falloir que je teste celui là. Je vois que mercurial est écrit en python, ça occasionne pas de problèmes de perfs ? En cherchant un peu je suis tombé sur quelques autres dont un certain git, qu'est-ce qui fait ta préférence pour mercurial par rapport à ceux là ? Te connaissant t'as du prendre le temps de les tester.
> 
> On trouve des choses niveau soft pour le gérer nativement sous windows ou avec différents environnements de dev ? Niveau plug-in Eclipse tu sais si c'est au point ? C'était quand même le gros avantage des cvs/svn d'être intégrés un peu partout.



le plugin eclipse a un probleme d'authentication, quand tu as une ancienne default version, sinon si t'es a jours pas de probleme Mercurial a l'avantage d'etre multi platforme et tres rapide, python ne change rien question perfs, oui cela demande un peu plus de mem, mais sur des machines actuels c'est imperceptible, l'avantage de mercurial c'est multi-tache multi-server et ca gere les hooks et les clones avec une gestion utilisateurs poussees git c'est Linus Torval et meme si il s'en defend c'est du svn ameliore, Mercurial sera la prochaine solution pour google-code toujours en Beta

dommage que je ne sois pas en France je pourrais faire une Demo decouverte pour ton Entreprise, Mercurial est une Rolls en comparaison des autres solutions open-source et non-opensource, c'est vraiment axe multi-projets multi-utilisateurs, ca a ete developpe par un Type qui en avait marre de galerer voila tout


----------



## molgow (29 Mai 2009)

Peut-être que SVN ne va jamais percé comme la référence (comme CVS l'est ou l'étais). Peut-être que l'avenir c'est autre chose, on m'a parlé de GIT, quelqu'un connaît ?


----------



## Anonyme (29 Mai 2009)

Mozilla est passé de cvs à Mercurial


----------



## Lapin Masqué (29 Mai 2009)

De mon point de vue svn est comme tu le dis assez ouvert au bordel, et si tous les utilisateurs ne sont pas super disciplinés, le repository devient très rapidement ingérable, le gros avantage c'est que le plugin eclipse est vraiment bien fait et qu'il permet de gérer assez correctement son code.

Mercurial est vraiment génial, à la fois rapide et simple à utiliser.

Git est bon aussi mais il s'est surtout développé avec la communauté Ruby/Rails et GitHub.


----------



## grumff (3 Juin 2009)

Ok, merci pour tes précisions Tatouille, ça me donne sérieusement envie de m'intéresser à la chose, et merci à tous pour les références, ça peut peser dans la balance pour convaincre des éventuels réticents.  Je test ça dès que mon mbp revient du sàv... (vive les 8600)
Pour Eclipse en principe on est à jour, donc pas de soucis dans ce cas.


----------



## Tarul (7 Juin 2009)

molgow a dit:


> Peut-être que SVN ne va jamais percé comme la référence (comme CVS l'est ou l'étais). Peut-être que l'avenir c'est autre chose, on m'a parlé de GIT, quelqu'un connaît ?



Git, mercurial, bazzaar sont des gestionnaires de source dit "distribué". Alors que cvs et svn sont sont centralisés, ils sont besoins d'un dépôt central et d'un serveur (enfin pas tout à faire vrai pour svn).

Il y a un petit coups d'entrée pour aborder le coté distribué, mais cela facilite la gestion des merges.

Je vais un peu me faire de la pub, mais bon. j'ai écrit il y a quelque temps une introduction à mercurial.
Pour git, il y a un livre (partiellement disponible).

D'ailleurs avec l'émergence des gestionnaires de source distribués, on a vu apparaître des forges dites sociales. Je vous laisse découvrir cela (http://bitbucket.org et http://github.com).

L'un des points faibles de ces gestionnaires, c'est qu'ils sont peu utiliser en entreprise. Mais ils sont très biens fait pour le développement open source.


----------



## Tarul (8 Juin 2009)

Bonjour,
 j'allais oublier launchpad.net, la plateforme de développement pour Ubuntu mais ou vert à d'autres projets open source. Leur scm est bazaar.

On y trouve notamment le framewark de mise à jour d'application sparkle. https://launchpad.net/sparkle

Je sais qu'un des rédacteurs de developpez.com est en train d'écrire un article sur ce dernier. Mais il a encore la réputation d'être plus que mercurial et git. J'ignore si elle est encore justifiée.


----------



## tatouille (8 Juin 2009)

Tarul a dit:


> ....


  ok je vais decipherer le savant fou, launchpad.net/ est une platforme  de 'projet hosting'', creer par une des societes sponsor du projet open-source UBUNTU, 

sur cette belle platforme il utilise comme logiciel de source version control 

http://bazaar-vcs.org/ 

(lui aussi projet sponsorise par Canonical pour ne pas la nommer) 

PS: jamais essaye ce logiciel


----------

