Re: Git & Mercurial

Antoine DESSAIGNE <[email protected]>
Newsgroups gmane.comp.java.french.general
Message-ID <[email protected]>
Le 13 octobre 2010 12:34, Frederic Camblor <[email protected]> a écrit :

> Bonjour tous !
>
> Moi, ya une grosse question que je me pose sur les DVCS : pourquoi tout le
> monde dit que les fusions de branches "c'est mieux qu'avant" ?
>
> Je veux dire... tous les outils se basent sur des diffs non ?
>
> Et les problèmes des merges c'est :
> - J'ai un conflit lors de mon merge => mais là, je pense pas qu'un DVCS va
> être plus à même de résoudre les conflits ... peut-être diminuer sa
> probabilité d'apparition du fait de commits "encore plus fréquents" (donc
> diffs "plus petits") dû au repository local (qui fait qu'on peut commiter en
> local, même si des tests passent pas ou, pire, que le code compile pas) ?
> - Je sais pas quel commit a été reporté sur quelle branche => la
> fonctionnalité de "cherry pick" chez GIT (je suppose qu'il doit y avoir un
> équivalent chez Mercurial ?), et également, plus récemment, le merge
> tracking chez Subversion (>= 1.5).
>
> Je ne connais les DVCS qu'à travers ce que j'en lis à droite à gauche, mais
> mon interrogation reste entière à l'heure d'aujourd'hui !
> Alors .. suis-je passé à coté de quelque chose ?
>
> Fred
>

Alors pour répondre (et si je ne dis pas de bêtises), effectivement ce n'est
pas le coté "distribué" qui évite les problèmes de merge, c'est la gestion
des révisions qui le fait. A priori, quand on merge des révisions, SVN
essaye de deviner ce qui a été fait entre les deux révisions tandis que Git
et Mercurial se souviennent de chaque étape.

De plus, chacun des deux outils affiche nativement l'arborescence des
branches lorsqu'on affiche l'historique. Ce qui est nettement plus pratique
pour savoir ce qui a été mergé et ce qui ne l'est pas..

Par ailleurs, comme SVN ne gère pas bien les merges, on se retrouve à bosser
directement dans le trunk. Et comme toutes les fonctionnalités ne se
développent pas en 2 jours il est courant d'avoir plus de 2 semaines entre
le début du code et le commit pour éviter de gêner les autres. Du coup, on
n'utilise pas réellement SVN comme un gestionnaire de source mais plus comme
un répertoire partagé...

Sinon j'ai l'intention de tester réellement les capacités de merge mais je
souhaitais d'abord faire ma pré-sélection entre Git et Mercurial. Je vous
tiendrai au courant des résultats.

Pour revenir à Eclipse, j'ai toujours été curieux du process utilisé pour
choisir si tel ou tel VCS. Ils étaient bloqués sur CVS alors que plus
personne ne l'utilise (ou presque) et là ils semblent passer à Git... Et à
priori la raison pour laquelle ils ont choisi Git c'est car il y a une
implémentation en Full Java. Mais subversion en a aussi une donc je ne sais
pas trop quoi penser.

Antoine.
(qui est toujours intéressé par d'autres retours)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.