Pourquoi je préfère GIT à SVN

In: GIT

10 sept 2009

Rassurez vous ceci est le dernier article de cette série sur GIT. Je pense repartir sur un peu de rails la semaine prochaine.
On me pose souvent la question « pourquoi choisir GIT et pas SVN ? »

Voici donc de manière absolument pas triée ni objective tous les arguments qui font que je préfère GIT à SVN (et de loin).
Notez que ce n’est que mon opinion. Vous pouvez en avoir une autre c’est absolument pas génant.

  • Pouvoir être nomade

    C’est ce que je montre dans mon article précédent.
    Avec GIT, contrairement à SVN, vous pouvez continuer à committer et ainsi conserver un repository avec des commits propres et pas un gros commit une fois de temps en temps. Même si vous n’êtes pas connecté ou n’avez pas accès à votre repository distant. Vous restez productif même en déplacement.

  • Une vraie gestion des tags et branches

    Avec SVN si vous désirez créer une nouvelle branche c’est pas compliqué : vous faites un copier/coller de votre répertoire trunk, le mettez dans branch/nom_de_la_branche. Et c’est fait. Y’a plus qu’à committer. Et le jour ou vous voulez fusionner les deux branches, morflez.
    Pareil pour les tags.

    GIT gère les branches et tags de manière native.
    Pas besoin d’action manuelle (copier/coller).
    Vous faites un « git branch <nouvelle_branch> » et votre branche est créée.
    Un « git checkout <branch> » et vous changez de branche active.
    Et un « git rebase <branch> <seconde_branch> » et vos deux branches sont fusionnées !

  • GitHub

    Ouais c’est pas vraiment GIT.
    Mais je kiffe littéralement GitHub.
    Pouvoir forker un projet en un clic; pouvoir commenter des commits etc.
    Tout projet libre devrait permettre ce genre de choses sur son repository. C’est ça qui pousse les autres développeurs à créer des patchs.

Ces trois arguments me suffisent personnellement à nettement préférer GIT à SVN.
Et vous ? Quel est votre logiciel de contrôle de version préféré ?

Cet article est rédigé par Damien MATHIEU.
Et est disponible sous licence creative common by-nc-nd.
Si vous appréciez son contenu, n'hésitez pas à me recommander.

8 Responses to Pourquoi je préfère GIT à SVN

Avatar

creatix

septembre 10th, 2009 at 13:21

Moi aussi j’aime beaucoup github juste dommage pour les projet privé il faut payer.
J’utilise indefero pour mes projets priver qui marche pas trop mal non plus (en tout cas en svn, pour le git je suis toujours en guerre avec).

Ads

Avatar

Damien

septembre 10th, 2009 at 13:24

@creatix en même temps ça s’appelle un business model.
Rien ne t’empêche d’héberger tes projets privés sur ta propre machine.

Et puis 4€/mois (7$) pour 5 projets c’est pas énorme.

Avatar

Samy

septembre 10th, 2009 at 13:32

Donc on est d’accord : si je suis non-nomade et que j’ai un projet « monolithique » sans branches, SVN c’est bien ? :)

Avatar

Ishiro

septembre 10th, 2009 at 13:38

Une vidéo issue de la PyCon 2009 (dommage pour le son coupé au début de la vidéo) :
http://video.pycon.fr/videos/free/43/

Damien, as-tu testé Mercurial ? Quelle est ton opinion à son sujet ? (Pas de question piège, ça ne pourra que m’aider à orienter mes choix ;) ).

Avatar

Damien

septembre 10th, 2009 at 13:40

@Samy une fois qu’on a gouté aux branches on peut plus s’en passer.
@Ishiro non. Tester Mercurial est dans ma (beaucoup trop longue) todolist.

Avatar

Raphaël

septembre 10th, 2009 at 14:10

@Ishiro pour moi Mercurial combine les avantages de Git avec la simplicité de SVN ! Donc sans hésiter, je passerai directement de SVN à Hg (Mercurial)

Avatar

JB

septembre 10th, 2009 at 18:49

D’accord sur les 3 points, j’adore git par rapport à svn pour les mêmes raisons. Par contre je suis vraiment curieu de retours sur mercurial : je sais qu’il existe un équivalent de github, bitbucket, et on me dit que c’est plus intuitif et aussi efficace.. Quelqu’un a des références intéressantes sur ce sujet ?

Avatar

Jean-Marc Fontaine

septembre 11th, 2009 at 19:53

Une précision pour ton argument sur les branches : SVN utilise un mécanisme de « cheap copy » c’est à dire que les fichiers ne sont pas copiés au départ. SVN fait juste un lien depuis leur origine.

Ce n’est qu’avec le temps, et seulement si ça s’avère nécessaire, que la copie est effectuée.

Cela étant dit, je ne réfute pas l’argument que GIT gère mieux les branches que SVN.

Comment Form

Photostream

    Playing chessLyon by nightLightSunshine on Tel AvivMamanLeft Dead on the RoadReading TheatreThe MasterBefore the concert
  • Damien: Eh bien il faut ajouter le chemin statique vers ce dossier dans le fichier urls.py. Mais générale [...]
  • kev: slt, est ce que tu peux me dire ou je dois placer le repertoire js parce que le serv ne trouve pas [...]
  • Mirsal Ennaime: En général emit(doc['_id'], doc); n'est pas une bonne pratique, il vaut mieux utiliser emit(doc['_ [...]
  • Mirsal Ennaime: @Raphael AMHA, les bases de données orientées documents sont plus adaptées pour la pluspart de [...]
  • Raphaël: @Sébastien je résume pas le marché de l'informatique mais le marché des BDD. Désolé mais quand [...]

Fork me on GitHub