• [^] # Re: Je profite de ce troll

    Posté par (site web personnel) . En réponse au journal Microsoft passe à git. Évalué à 10.

    Alors… dans une précédente boite je m'étais justement occupé de la migration de notre svn. J'ai donc testé git, mercurial et bzr. Avant d'aller plus loin, on est passé à mercurial, je l'ai utilisé pendant en gros deux ans. J'utilisais git avant, pendant, et après, y compris pour des projets pro.

    Pour commencer, bzr a des bons côtés je trouve, il est plutôt souple sur sur fonctionnement. Mais il a beaucoup de défauts et rien que sa lenteur fait que je n'ai jamais pu le blairer ! Pourtant j'ai vraiment essayé

    Maintenant, git et mercurial. J'ai apprécié mercurial, il fonctionne plutôt bien. C'est déroutant que certaines commandes soient inversées lorsqu'on fait du mercurial et du git, mais bon c'est pas grand chose.
    Mercurial fonctionne bien, mais je suis d'accord pour le côté extensions, c'est nul. Idem pour l'absence d'un équivalent correct aux submodules.

    Pendant longtemps j'ai taillé mercurial pour sa gestion des branches. Ensuite j'ai compris comment ça fonctionnait et j'ai apprécié. Ensuite j'ai taillé (削除) git (削除ここまで) mercurial pour sa gestion des branches.

    Je m'explique : dans mercurial la branche n'est qu'une méta donnée d'un commit. Pour qu'une branche existe il faut au moins un commit. Dans git une branche est un pointeur vers un commit. Pas besoin de commit dans la branche pour qu'elle existe, plus simple pour créer plusieurs branches depuis un même état.

    Au final cela induit une vrai différence d'usage (et c'est là où je trouve qu'il y a réellement un point commun, dans l'usage, avec svn, contrairement à ces histoires de frontend qui sont un peu ridicules).
    Dans git, on va brancher d'abord (beaucoup de branches nommées juste pour faire quelques commits, topic branches, court terme) pour préparer le boulot. Genre, je vais bosser sur si, sur ça, sur cet autre point, allez hop je crée 3 branches.
    Dans mercurial, on va brancher plutôt au besoin (si on ne parle pas de branches long terme). On va toujours bosser dans default. Si j'ai besoin de corriger un commit, je remonte l'historique pour me placer dessus, et je commit directement. Je viens de créer un head, pas besoin de faire une branche. Et hop, je merge. Si j'ai plusieurs choses à faire, pareil. Je me met sur default et je bosse. Lorsque je veux passer sur une autre tâche, je reviens à mon état initial et je bosse. On est plus dans du "branch as needed" et on utilise beaucoup plus les branches anonymes.

    Au final, je préfère le fonctionnement de git, mais parfois j'aime bien celui de mercurial tout de même.

    Quelques liens (ça vient du même site mais ça c'est pas grave c'est plutôt de qualité) :

    Ha oui, et côté mercurial j'ai très souvent utilisé mq avec pas mal de plaisir. Sous git il m'arrive souvent d'utiliser stgit. Et je vous encourage vraiment à les utiliser, surtout si vous vous souciez de votre historique.

    Voilà, ça répond pas totalement à ta question, mais met en évidences quelques différences.