Le "git" et le couvert
J'aime les titres qui veulent rien dire.
Un SCM c'est quoi ? C'est un gestionnaire de sources ... Alors beaucoup connaissent CVS, normalement ceux-la savent qu'ils sont depuis un moment dépassé par SVN (subversion) qui en est la suite ...
Mais il y en a une foultitude ...
Choisir le bon est une question de ... choix ... ben oui, ça dépend beaucoup des besoins, des contraintes, des opinions ... Personnallement j'ai appris avec CVS avec lequel je suis resté jusqu'a ... ben jusqu'a y'a deux mois ou j'ai poursuivit avec SVN ...
Git (ici sur wikipedia) est le SCM de linus ... oui le gars qui fait linux vous en avez forcément déja entendu parlé (je vois pas pourquoi je demande, si vous lisez ça vous êtes suffisament geek pour connaitre linus :)) Bref après que son outil favoris ait passé l'arme a gauche ... enfin il est allé dans le monde propriétaire ... Il a développé lui même son truc ... normal quoi ...
Si vous voulez son avis il faut l'écouter sur youtube (ou si vous préférez lire) il donne aussi son avis sur SVN CVS (il décrit plutot sa haine envers ces SCM ...) et d'autres ... En gros pour lui un bon SCM c'est un SCM rapide, qui permet de brancher dans tous les sens et surtout qui permet de merger sans même se poser de questions ... Si en plus il est ditribué c'est encore mieux ...
Git est excellent pour ça, on clone un repository en local, on branche et on merge comme on veut en local (donc super rapide) puis on push les modifications... Je vais pas rentrer dans le détail du fonctionnement, mais c'est grisant :) j'espère avoir succité de l'intérêt pour que vous alliez vous renseigner :)
Pour installer la dernière version sous linux je me suis rendu ici : http://www.backports.org/debian/pool/main/g/git-core/. La dernière version Ubuntu n'étant pas complètement à jour ... Et la il y a les outils d'interface avec SVN et CVS ... bref faites comme vous le sentez =)
Pour MacOSX j'ai essayé fink, mais bon ... c'est vraiment pas génial, il a compilé deux heures pour m'envoyer une erreur ... (git n'est pas considéré comme stable alors il faut compiler ...) Par contre chez Darwin Ports aucun soucis ... c'est un peu long a installer mais ça marche tout de suite !!!
Pauvres gens de windows ... Vous ne pourrez l'utiliser que par le biais d'un cygwin qui vous ralentira considerablement les performances ... mais c'est pas mon problème immédiatement ...
Voici juste comment démarrer un projet avec git ... Ca ne remplacera jamais le user-manual On imagine un projet se trouvant dans /home/git/priv/monProjet On fait :
cd /home/git/priv/monProjet
git init
git add .
git commitTout ça en moins de 3 secondes, vous avez votre SCM local !!!
Alors un SCM distribué ça veut dire qu'il n'y a pas qu'un seul repository, mais autant qu'il y a d'utilisateur sinon plus ... Comment ça marche ? Dans la doc on nous dit qu'il faut au minimum 4 repo pour avoir un truc propre :
you push
your personal repo ------------------> your public repo
^ |
| |
| you pull | they pull
| |
| |
| they push V
their public repo <------------------- their repo
C'est un peu louche a comprendre, mais bon ... quand on s'en sert ça devient limpide ...
Dans cette même doc, on nous explique comment lancer le daemon du git... Perso je l'ai lancé avec xinetd, voici mon fichier de config :
# cat /etc/xinetd.d/git service git { port = 9418 socket_type = stream protocol = tcp user = git wait = no server = /usr/bin/git-daemon server_args = --inetd --verbose --export-all --base-path=/home/git/pub/ }
il faut aussi :
# grep 9418 /etc/services git 9418/tcp # git SCM
Et un user git !! Pour créer le repo publique il suffit de faire :
git clone --bare /home/git/priv/project /home/git/pub/project.git touch /home/git/pub/project.git/git-daemon-export-ok
Voila et avec ça du mac il me suffit donc de faire:
git clone http://10.0.0.12/project.git
et c'est partit ...
Je vais maintenant essayer de lier git et trac, le gestionnaire de projets/wiki/tous les brolls ... Une première piste

Comments
merci pour m'avoir fais d'écouvrir Git !
sait tu si il existe un frontend, comme un plugin pour eclipse par exemple ?
Merci
J'avais trouvé ça pour les frontends/tools autour de git :
http://git.or.cz/gitwiki/InterfacesFrontendsAndTools
Il y a l'air d'avoir un plugin eclipse mais je ne l'ai pas testé ...
Arghh... Quand vous publiez sur le planet, faites donc un peu attention à l'orthographe et la grammaire !!!
J'aimerais juste faire une petite parenthèse entre la relation Linux / Linus Torwalds et GNU/Linux, ayant récemment assisté à une conférence de Richard Stallman... dont le discours est assez pertinent.
Arrêtons d'appeller ce merveilleux système Linux. Son nom est GNU/Linux. Et la partie GNU est aussi importante que la partie Linux.
Vous allez me dire ouais mais c'est plus simple, faut pas chipoter sur le nom, etc. Oui mais non :o) J'étais assez d'accord là dessus avant d'assister à la conférence de Stallman...
Linux est le produit de Linus Torwalds, mais Linux n'est *que* le kernel du système. En n'utilisant que le mot Linux pour désigner le système dans sa globalité, les gens font l'amalgame et pensent que Linus Torwalds a entièrement concu notre système préferé. Or le reste du système, à la base, c'est GNU.
Il est possible de s'affranchir du noyau Linux et d'utiliser Hurd (même si je ne le conseille à personne lol) ou celui d'OpenSolaris.
Oui, Linus est le maître contesté du noyau Linux, mais pas du reste de notre système adoré. Donc il ne faut surtout pas que les gens apprennent/comprennent que Linus décide de tout ou qu'il a tout fait.
Le plus important est donc de détacher les propos de Linus de la globalité du système GNU/Linux. Il n'y a qu'à voir la réticense absolue de Linus à propos de la license GNU/GPLv3. Il est donc important de comprendre que Linus n'a pas les moyens ni la possibilité d'empêcher la finalisation et sortie de la version 3 de la licence GNU/GPL. Il peut par contre s'opposer, de part sa position, à l'utilisation de la GPLv3 au noyau Linux, mais pas au reste.
Il faut bien comprendre que Linus n'a pas d'affinités particulières avec les licences libres, est même opposé à certaines idées fondamentales de la GPL, et de plus, est très ami avec de gros groupes propriétaires (et les soutiens).
Bref. Que vive GNU/LINUX :o)
@Preston: J'ai utilisé exactement deux fois le mot Linux, dans aucune des deux fois, je n'y fois la nécéssité d'y adjoindre le GNU ...
PiTiLeZarD : ...oui le gars qui fait linux vous en avez...
Eh ben quoi il fait linux ... il fait pas GNU/Linux, il fait le noyau linux ...
PiTiLeZarD : ...la dernière version sous linux je me suis rendu ici ...
Je dis pas Microsoft Windows mais Windows, même si GNU n'est pas la boite qui fait linux (pour la comparaison) c'est quand même plus sympa de dire "sous linux" que "sous GNU/Linux" surtout que GNU sans Linux... bon ... ça tourne sous AIX/Solaris/BSD mais bon ... Ca complique pour pas grand chose ...
@RackAm > Une des particularité des blogs c'est qu'on peut y faire des commentaires constructifs ... je fais des efforts pour mon orthographe (ma grammaire bon je sais pas trop mais mis a part que j'écris comme je parle ...). Simplement si tu en est a prendre ton clavier pour me dire que j'écris mal, tu peux même me dire où, que je puisse corriger :)
@PiTiLeZarD: Non c'était pas une attaque contre toi, mais comme tu parles de Linux et de Linus, j'en profite :o)
Arg, ça existe depuis presque deux ans et j'en avais jamais entendu parler, merci de me l'avoir fait découvrir :D
Par contre, PiTiLeZarD, il y a un petit souci avec l'hébergement d'Alwaysdata, et comme je vois que tu as déjà posté un topic sur leur forum, je voudrais savoir si tu as réussi à lancer un démon git.
Merci encore,
Naji.
À noter que la version 1.5.2.3 est disponible dans les backports Feisty depuis quelques jours, il est donc à présent inutile d'aller chercher une version plus ancienne dans ceux de Debian :-)