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é ?





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).
@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.
Donc on est d’accord : si je suis non-nomade et que j’ai un projet « monolithique » sans branches, SVN c’est bien ?
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
).
@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.
@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)
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 ?
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.