12 janvier 2009

Balader un projet versionné de poste en poste sans serveur central ?

J'ai déjà, par le passé, rédigé 2 articles montrant comment balader des fichiers de poste en poste avec une clé USB :

Le temps passe et les techniques avancent. Voici donc une autre méthode, en utilisant cette fois-ci, un gestionnaire de version décentralisé en l'occurrence git.

Énoncé

Soient deux postes nommés A et B. Soit un projet nommé P contenant un fichier F.

Comment modifier F sur A pour aller ensuite le modifier sur B avant de revenir sur A.

Vous me suivez ;-)

Préambule

Pour utiliser git, il faut que le projet P soit gérer par git. Pour cela :

touv@A ~ % cd p
touv@A ~/p % git init
touv@A ~/p % touch f
touv@A ~/p % git add f
touv@A ~/p % git commit

Mettre le projet sur une clé USB

Ici, le but est de cloner le projet dans un répertoire sur la clé USB puis
de récupérer les modifications faites dans le répertoire d'origine.

touv@A ~ % cd /media/usb
touv@A /media/usb % mkdir p
touv@A /media/usb % git clone ~/p

Modifier le projet sur un autre poste

Comme précédemment, il faut cloner le projet sur le nouveau poste.

touv@B ~ % git clone /media/usb/p
touv@B ~ % cd p
touv@B ~/p % cat "Coucou c'est B" >> f
touv@B ~/p % git commit

Ensuite, il nous faut envoyer les modifications locales sur la clé USB :

touv@B ~/p % git repack
touv@B ~/p % git prune-packed
touv@B ~/p % cd /media/usb/p
touv@B /media/usb/p % git pull ~/p
touv@B /media/usb/p % git commit -a --no-verify --message "en balade"

Revenir sur le poste de départ et continuer le travail

Ici, il suffit de "tirer" les sources de la clé USB.

touv@A ~ % cd p
touv@A ~/p % git pull /media/usb/p master
touv@A ~/p % cat f
Coucou c'est B

Et, rejouer ce petit scénario autant de fois que l'on souhaite ...

Aucun commentaire:

Enregistrer un commentaire