18/04/2010

Premiers pas avec Git et migration SVN

- NKA20100418 - REPORTING MISSION "GET OVER GIT" -
- NKA20100418 - CONTEXT -
Un fou d'agilité m'a parlé recemment de git, alors je me suis lancé, voici mes premieres impressions :
Pour commencer, comme je fais deja du SCM avec un referentiel centralisé SVN, je voulais retrouver mes marques et mes petites habitudes de partage :
- NKA20100418 - PRIMARY TARGET 1 -


Objectif 1 : Un serveur Git over http avec Apache2

Pour résumer et traduire une de mes sources, j'ai besoin d'installer git sur le serveur :
(debian/ubuntu) apt-get install git-core
Ensuite il faut créer le depot sur serveur :
mkdir -p /path/to/repo
cd /path/to/repo
git --bare init
git update-server-info
Ensuite, j'ai besoin d'installer et d'activer les modules WebDAV "fs" et DAVLockDB sur mon serveur apache.

Puis je rajoute les infos suivantes dans la conf apache (Principale ou vhost) :
 Alias /Project.git /path/to/repo
       
          DAV on
        AuthType Basic
        AuthName "Git"
        AuthUserFile /path/to/digest-store
        Require valid-user
       

Voilà, le depot de partage est crée, on peut aller sur le client et commencer à travailler :

Clone du nouveau repository git sur la machine :
mkdir git
cd git
git clone http://server/project.git
Il m'insulte presque pour me dire que le repository est vide, il n'y a pas de branches, ni de contenu, mais mon répertoire de travail est crée.
- NKA20100418 - PRIMARY TARGET 1 COMPLETE -

- NKA20100418 - GIT BONUS / THE SECOND KISS-COOL EFFECT -

Git est magique, cette commande ne ramène pas qu'une copie de travail de mon repository, c'est un clone du serveur, je peux travailler dedans, comitter dedans sans avoir a contacter mon serveur, et même faire un autre git-clone à partir de cette source.
Ainsi, je travaille avec un git sur ma clef USB pour comitter dessus et synchroniser entre mes differents environnements de DEV (qui ont chacun cloné le git depuis la clef), et une fois que les versions sont mergées sur la clef, je peux faire un push au serveur de tous les changements.
C'est pratique pour passer du notebook au desktop PC lorsque le notebook n'a pas le reseau par exemple.
- NKA20100418 - PRIMARY TARGET 2 - 
Objectif 2 : Migrer le trunk de mon projet de svn vers git

Quelques note prises pour migrer vers git avec tout l'historique des changements :

Principe :
/my/git/repo - clone du serveur git (vide)
/my/tmpgit - dossier de migration
git svn clone http://svn.foo.org/project -T trunk -b branches -t tags
mkdir /my/tmpgit
cd /my/tmpgit
cd project
git remote add gitmigr /my/git/repo
git push gitmigr master
cd /my/git/repo
git checkout master 
git push origin master
apres toutes ces etapes, mon serveur git connait toutes les versions du trunk svn.
C'est un peu à la hache, y'a pas vraiment d'explications, et on n'a pas traité les branches, les tags et les subtilités du SCM, maispour l'instant ca me suffit.
- NKA20100418 - PRIMARY TARGET 2 COMPLETE - 

- NKA20100418 - UPDATE 1: BASIC AUTH -
vi ~/.netrc
machine yourserver.example.com
username your_username
password your_password
- NKA20100418 - UPDATE 2: SELF-SIGNED CERTIFICATE (LAZY) -
export GIT_SSL_NO_VERIFY=true
- NKA20100418 - CONGRATULATIONS: MISSION "GET OVER GIT" COMPLETE -
- REPORT END OF FILE -

13/04/2010

J'ai sauvé le serveur de Nil

J'ai sauvé le serveur de Nil, et je m'en félicite.

à part ça, voici les news du monde :
  • Plus que 16j avant 10.04LTS (Je parle de la prochaine release d'ubuntu bien sûr)
  • Encore une durée indéterminée (minable) avant KaraCos/Menestrel
  • J'ai perdu Cyril, mais j'ai retrouvé Seb...
  • Résistons à ACTA...
  • J'ai un tout nouveau smartphone qui tourne sous Maemo, même que Firefox s'y installe, ça devrait plaire à Tristan.
  • L'écran de mon macbook pro est mourrant (snif) ...
  • ... Du coup je prend un ThinkPad IBM (pardon, faut dire LENOVO) comme machine de backup.
  • Python ROCKS, mais vous le saviez !!!
  • Je veux une sheevaPlug (Ou un plug computer équivalent)
  • Apple a sorti un tabletPC monotache
  • J'aime bien le geektionnerd
Tout ca pour dire que je suis pas mort, même si l'activité de ce blog peut le laisser penser....