Steve Frécinaux

Sauvegardez avec git et EDC à l’ULg

Il y a beaucoup de façons différentes de perdre le fruit de son travail, certaines courantes et d’autres plus inattendues. Récemment, par exemple, l’une de mes amies s’est fait voler son ordinateur portable, sur lequel se trouvaient divers travaux à rendre à plus ou moins brève échéance, dont son TFE. On imagine sans peine la perte que cela représente. Un ordinateur peut se remplacer, mais les heures de travail investies seront difficiles à rattraper, surtout avec la session de janvier qui approche à grands pas.

D’un autre côté, l’Université de Liège met à la disposition de tous ses étudiants un espace de stockage WebDAV sécurisé (sauvegarde quotidienne, accès via SSL), qu’ils ont baptisé sobrement « Espace Disque Centralisé » (EDC).

L’idée est donc, comme suggéré sur la page liée précédemment, d’effectuer des copies de sauvegarde de vos documents importants, en utilisant un outil d’archivage capable d’utiliser WebDAV. Tant qu’à faire, autant que cet outil soit capable de gérer les versions successives d’un document (histoire de se débarrasser du même coup des copies numérotées). Si vous n’utilisez pas encore de système de gestion de versions, essayez, vous serez vite conquis ;-)

Je vais donc expliquer ici comment mettre en place rapidement un dépôt git sur votre EDC. Ceci fonctionnerait probablement avec d’autres gestionnaires de versions décentralisés (comme Mercurial ou Arch), mais git est celui que j’utilise…

Installation

Malheureusement, la version disponible dans Ubuntu Edgy (1.4.1) semble trop ancienne et n’arrive pas à se connecter au WebDAV en utiliant SSL. Si vous utilisez Ubuntu, ils vous faudra donc le compiler à la main, à moins qu’un backport ne soit disponible…

Pour ce faire, c’est simple (mais plutôt long) :

$ sudo apt-get build-dep git-core
$ wget http://kernel.org/pub/software/scm/git/git-1.4.4.1.tar.bz2
$ tar xjf git-1.4.4.1.tar.bz2
$ cd git-1.4.4.1
$ make prefix=/opt/git
$ sudo make install

Pensez également à ajouter /opt/git dans votre $PATH, en ajoutant PATH = /opt/git:$PATH dans le fichier .bashrc de votre dossier personnel.

Configuration des dépôts

Créez maintenant le dossier qui contiendra vos documents. Par exemple, ~/Documents/Travaux :

$ mkdir -p ~/Documents/Travaux
$ cd ~/Documents/Travaux
$ git init-db

C’est dans ce dossier que vous placerez vos travaux dont vous voulez garder l’historique, et sauvegarder. Vous pouvez évidemment aussi gérer les travaux séparément (avec un « dépôt » git par projet), ce que je fais. Vous pouvez ajouter un fichier dedans. Par exemple :

$ mkdir slides-08-12
$ mv ~/tmp/presentation.tex slides-08-12
$ git add slides-08-12/presentation.tex
$ git commit -a

Je vous conseille aussi de lire un didacticiel sur l’utilisation de git. En voici deux (en anglais) :

Créons maintenant le dépôt distant, celui qui sera hébergé sur EDC. Pour ce faire, retournez dans votre dossier personnel et créez une base de données git vide :

$ mkdir travaux.git
$ cd travaux.git
$ git --bare init-db

Connectez-vous maintenant à votre EDC, et copiez-y le dossier que nous venons de créer. Vous pouvez ensuite le supprimer de votre disque dur, nous n’en avons plus besoin.

Maintenant, éditez le fichier ~/.netrc présent dans votre dossier personnel, ou créez-le. Ajoutez-y les lignes suivantes :

machine edc.ulg.ac.be
login sXXXXXX
password ********

sXXXXXX est votre identifiant ULg. N’oubliez pas d’ajuster les droits d’accès à ce fichier pour éviter que d’autres utilisateurs ne voient votre mot de passe.

$ chmod 600 ~/.netrc

Il ne reste plus qu’à configurer votre dépôt local. Pour ce faire, retournez dans ~/Documents/Travaux et faites ceci (attention, le / final est important) :

$ git-repo-config remote.edc.url \
     https://sXXXXXX@edc.ulg.ac.be/sXXXXXX/travaux.git/

Voilà, c’est prêt, il ne vous reste plus qu’à synchroniser vos deux dépôt !

$ git push edc master

Vous pouvez ainsi ajouter autant de fichiers que vous le voulez, et conserver toutes les versions intermédiaires de ceux-ci. Et vous avez 1 Go à remplir ;-) La vitesse de WebDAV n’est pas transcendante mais il reste qu’EDC constitue une bonne roue de secours, et qu’une ligne de commande est un moyen très commode et rapide de faire vos sauvegardes, en particulier si vous utilisez LaTeX. Un gros inconvénient par contre est que l’accès direct à votre EDC via votre navigateur ne permet pas de récupérer directement la dernière version des fichiers qui y sont stockés… Il faudra donc les y copier explicitement si besoin est.

En espérant que ceci sera utile à d’autres étudiants de notre chère université…