Note : 5 ; Globalement efficace mais parfois frustrant
Le principe de cet ouvrage est excellent : 130 pages, un format de poche et 44 « taches » qui sont autant de recettes longues de 2 ou 3 pages réparties en 8 chapitres. On est sensé avoir là de la matière concrète pour utiliser Git au jour le jour, non selon la description de la ligne de commande, mais rapport aux cas d’usage !
Heureusement le tout est organisé en 8 chapitres correspondant à autant de cas d’usage. Le premier d’entre-eux a trait à l’installation et au setup de Git. De ce point de vue les 4 recettes constituant ce chapitre sont un peu courtes par rapport au sujet traité.
Le second chapitre regroupe 8 recettes gravitant autour des tâches locales du développeur est mieux adapté au format des tâches. Il permet de s’y retrouver avec les tâches courantes : ajout de fichier, suppression, déplacement, pull, etc..
Les 6 tâches évoquées au chapitre 3 permettent d’organiser et réorganiser un répo et ses branches en les créant, les mergeant ou via un rebase. La plupart de ces recettes ont le bon goût d’être illustré d’un petit schéma. L’auteur aurait pu étendre cette pratique avec profit à nombre d’autres tâches décrites dans l’ouvrage. Mon regret avec ce chapitre est qu’il traité de l’organisation du repo sous forme de tâches, c’est à dire sous l’angle de ce que Git peut faire, et non sous l’angle pattern / stratégie qui aurait un peu élevé le niveau de réflexion.
Cette remarque pourrait s’étendre aux 5 tâches décrites au chapitre 4 et dévolues aux pratiques de travail en équipe. Les tâches décrites ici ont trait aux branches remote et à la recherche des changements. Plus encore qu’au chapitre précédent j’aurais apprécié une remise dans le contexte d’un travail quotidien…
Le chapitre 5 traite de fonctionnalités avancées ou plus exactement particulières à Git telles que le Cherry picking. Le format de description des tâches est presque toujours trop court pour aider à comprendre la mise en œuvre de ces options. Bref, un chapitre réellement frustrant.
Au chapitre 6, on explore les différentes manières d’aller rechercher une information dans le repository. Les 5 tâches qui y figurent sont à la fois trop et pas assez. Trop, car on va au-delà de la recette de cuisine à l’usage de tous les jours, même si on peut se féliciter de les avoir. Et pas assez car cela reste très superficiel, tout d’abord avec seulement 5 tâches décrites et sur un format qui reste incomplet.
J’ai trouvé le chapitre 7 précieux car il nous enseigne comment utiliser Git pour corriger non seulement ce qui figure dans le repository mais pour trouver des bugs, comme avec bisect par exemple. Le format de description remplit ici pleinement son office.
Le dernier chapitre est un petit fourre-tout pour « aller plus loin » : exporter son repo, synchroniser avec Subversion, etc. En fait il s’agit surtout de tâches qui ne rentraient pas dans un autre chapitre. Ce dernier chapitre ne m’a pas paru indispensable eut égard à la cible du texte.
Je dirais que l’opuscule atteint sa cible à moitié : les cas d’usage sont bien choisis, depuis les usages courants aux utilisations avancées. Les explications sont claires, quoique parfois un peu élidées. Mais il nous manque souvent de petits graphiques à l’image de ceux qui ont servit à l’illustration du début du livre. Cela a suffit pour que je me retrouve perdu à quelques occasions.
J’aurais surtout apprécié, soit en sus, soit en remplacement, des patterns d’usage de Git de plus haut niveau déclinant comment les mettre en œuvre à l’aide de Git. Une sorte d’instanciation des configuration patterns en quelque sorte…
Bref, sans être mauvais, je suis un peu déçu par ce livre qui ne m’a pas apporté tout ce que j’en attendais.

Référence complète : Pragmatic guide to GIT – Travis Swicegood – Pragmatic Bookshelf 2010 – ISBN : 978 1 93435 672 2