- NKA20100418 - CONTEXT -
Un fou d'agilité m'a parlé recemment de git, alors je me suis lancé, voici mes premieres impressions :- NKA20100418 - PRIMARY TARGET 1 -
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 COMPLETE -
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/repoEnsuite, j'ai besoin d'installer et d'activer les modules WebDAV "fs" et DAVLockDB sur mon serveur apache.
cd /path/to/repo
git --bare init
git update-server-info
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 :
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.mkdir gitcd gitgit clone http://server/project.git
- 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.- NKA20100418 - PRIMARY TARGET 2 -
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.
Objectif 2 : Migrer le trunk de mon projet de svn vers git- NKA20100418 - PRIMARY TARGET 2 COMPLETE -
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
apres toutes ces etapes, mon serveur git connait toutes les versions du trunk svn.git svn clone http://svn.foo.org/project -T trunk -b branches -t tagsmkdir /my/tmpgitcd /my/tmpgit
cd projectgit remote add gitmigr /my/git/repogit push gitmigr mastercd/my/git/repogit checkout mastergit push origin master
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 - UPDATE 1: BASIC AUTH -
- NKA20100418 - UPDATE 2: SELF-SIGNED CERTIFICATE (LAZY) -vi ~/.netrc machine yourserver.example.com username your_username password your_password
export GIT_SSL_NO_VERIFY=true- NKA20100418 - CONGRATULATIONS: MISSION "GET OVER GIT" COMPLETE -
- REPORT END OF FILE -
0 commentaires:
Enregistrer un commentaire