Bazaar/Git vs SVN

J’utilise SVN depuis déjà pas mal de temps et je m’interroge sur les avantages des nouveaux système de gestion de versions décentralisés comme Bazaar/Git. Le fait que ça soit décentralisé me plait énormément, c’est lourd d’avoir un serveur distant unique qui empêche de commiter lorsque l’on est pas connecté à internet. Un autre problème récurrent sur SVN c’est le refactoring sur des répertoires entier qui me fout le gros boxon, j’ai lu que Bazaar s’en sortait beaucoup mieux.
Est-ce que certains d’entre vous ont déjà utilisé Bazaar et peuvent me faire un retour, je ne trouve que peux d’avis sur Google.

http://en.wikipedia.org/wiki/Comparison_of…ontrol_software pour une comparaison fonctionnelle.
Le merge de branches se trouve également facilité avec des outils comme Git ou Mercurial en comparaison de SVN.

A un barcamp j’ai recontré un gars qui a fait une présentation sur Git et sur le SCM décentralisé, y’a sa présentation ici, et à la limite tu dois pouvoir le contacter pour lui demander de partager son expérience : http://tinyurl.com/6dut4c

Ceci dit, il faut voir dans quel contexte tu comptes utiliser ça, mais pour ce qui est du source control pour des trucs importants je suis toujours parti du principe de “si y’a beaucoup de gens qui l’utilisent, c’est fiable”. Quitte à ne pas forcément permettre de choisir le meilleur tool, ça donne au moins une certaine sécurité. Donc pour moi c’est Perforce quand y’a des sous, et Subversion quand y’en a pas.

Le concept de versionning décentralisé est hyper sexy et ça me donne très envie aussi, mais comme ce qui m’importe le plus c’est la sécurité et la facilité de mise en place, bah je laisse à d’autres le soin d’essuyer les plâtres, quitte à avoir un outil limité.

Tu l’utilises pour des projets persos? Si oui, alors Git n’a à priori pas d’interêt pour toi. J’ai jamais testé donc je peux me tromper, mais de ce que j’en ai vu, il est conçu principalement pour faciliter les développements impliquant de nombreuses personnes et de nombreuses branches. Pour des projets personnels, donc, ça change pas grand chose, à moins que t’aies vraiment besoin de fonctionnalités comme checkout/checkin quand t’es pas connecté à ton serveur (sachant que SVN ne nécessite pas de serveur en soi… mes repositories sont sur mon NAS et je fais tout en “local”).

Ah non, d’après moi y’a un intérêt et c’est justement le fait de pouvoir faire des update/commit en local. A chacun sa façon de travailler, mais moi je fais des commit très régulièrement (environ toutes les deux heures les jours où je suis en forme). Et quand je suis sur mon laptop, déconnecté du réseau et de mes disques où se trouvent mes repositories, j’ai toujours la flippe de foirer un truc et de ne pas avoir d’historique sur lequel me reposer.

Ah bah oui c’est ce que je disais dans mon “à moins que…”. Moi mes projets perso par définition je bosse dessus à la maison donc je suis toujours connecté en wifi ou directement par cable. Les rares fois où je développe depuis ailleurs, j’ai de toutes façons accès au net quand même donc je pourrais exposer SVNServe sur le WAN si ça devient courant.

Par contre, si l’un de vous teste GIT, je veux bien que vous postiez vos impressions et commentaires.

Déterrage de Thread.

Sur un projet, on utilise SVN (car les chefs ont exactement les mêmes réflexes que toi Drealmer, tout le monde connais SVN donc on utilise SVN). Cependant, il y a 3 équipes différentes qui travaillent sur ce projet (Paris, Lille, Lisbonne) et il y a deux SVN, le SVN utilisé pour le développement à Lisbonne et le SVN pour les livraisons à Paris.
Pour automatiser un peu la compilation, j’aimerai pouvoir faire un update du SVN de Lisbonne et envoyé ça sur un SVN à Lille, mais je vois mal comment mettre ça en place facilement. J’ai bien penssé à faire un export vers le SVN de Lille, mais il reste le problème des fichiers supprimés…
Si quelqu’un a déjà réussi ce tour de passe-passe ?

Je vois ça un peu comme le tuto sur le site de subversion qui explique comment mettre en prod un site qui est la version trunk du svn. Voilà pour la piste.
Pour revenir sur la question initiale, d’après toi que pourrai(en)t t’apporter git/baazar/mercurial dans ce cas précis?

Sinon le décentralisé, oui et non: à un moment ou un autre il faut bien partager ses sources avec les autres, donc le coup du “ne pas être connecté”, bof.
Après c’est une question d’habitude sur les commits, perso je commite encore plus que toi Drealmer, genre si on bosse à plusieurs en même temps j’up des .h ou des interfaces vite, je reup pour les commentaires, re up pour de l’implem etc …
La question étant “quand je bosse tout seul sans le net, (sauf quand je suis dans le larzac profond pendant 3 semaines) ai-je besoin d’un historique de ce que j’ai fait en 2h?”

Moi je suis une grand fan de travailler dans le meme depot mais avec des branches. Voire avoir une branche perso par dev limite, et/ou par features au moins. Et apres tu fais des FI (Forward integration quand tu bouges le contenu d’une branche parente vers une branche fille) et RI (Reverse integration, l’inverse).

Oui, quand je commence à faire des grosses modifications avec du refactoring, J’apprécie les commits régulier en local que je ne veux pas partager avec les autres.

Et quand On ajoute un VPN logiciel au bordel, Je serais bien content d’avoir du décentralisé pour récupérer une version sur un serveur et donner accès à l’équipe à cette branche. Le décentralisé apporte beaucoup de solutions à diverses problèmes (Eviter de me connecter en VPN juste pour récupérer l’historique des commits par exemple :mad:)

Laisse Linus te convaincre :slight_smile: