Note : 5 ; Une simple mise à jour.
Successeur de CVS, Subversion n’a pas encore complètement disparu du paysage, mais il est déjà un outil du passé. Cet ouvrage qui date du milieu des années 2000 nous rappelle qu’il n’en a pas toujours été ainsi. Cette seconde version couvre la version 1.3 de Subversion. Le texte grossit d’une dizaine de pages, et les annexes aussi, emmenant l’ensemble à 220 pages contre 200 précédemment. Le texte ne change guère sur le fond, il est juste annoté de quelques évolutions liées à la version 1.3 de subversion. L’esprit de cette série « starter kit » n’a pas changé : ni un manuel de référence, ni un guide de l’utilisateur, mais une manière de mettre en œuvre concrètement l’outil sur nos activités quotidiennes de développement !
Le texte principal compte à peine plus de 150 pages, structurés en 11 chapitres, auxquels il ne faut pas oublier d’ajouter pas moins de 70 pages d’annexes. Le texte s’ouvre sur un classique premier chapitre d’introduction. Il n’apprend pas grand-chose aux praticiens aguerris de la gestion de version, mais permet quand même d’évoquer quelques aspects particuliers à Subversion, tels que les changeset.
On attaque les choses sérieuses avec le chapitre 2 et les concepts essentiels de Subversion : repository, branches, tags, etc. ainsi que les actions classiques telles que check-in, check-out, merge ont au menu. Ce sont des fondamentaux clairement expliqués, mais nous ne sommes pas encore dans l’action. L’action, justement, elle commence au chapitre 3 où il faut installer l’outil, se familiariser avec la ligne de commande, créer repository et projet et mener à bien notre « hello world ». En réalité, on va un tout petit peu plus loin que le « hello world », mais si on a touché du doigt les commandes de base, on n’a pas encore travaillé en « grandeur réelle ».
Je passe rapidement sur le chapitre 4 qui ne compte que quelques pages et est un récapitulatif un peu raté des premiers chapitres. Au chapitre 5, nous allons commencer à configurer le repository, et plus précisément à configurer l’accès ssh ! Le chapitre 6 est sans doute le plus important de l’ouvrage, car c’est là que nous allons explorer les commandes en les mettant en œuvre dans des contextes identiques à celui des projets. C’est un des points forts de l’ouvrage, car il ne sacrifie pas la simplicité à outrance pour la clarté du propos. Il trouve un juste équilibre entre les deux. Bravo ! Le chapitre 7 traite sur quelques pages d’une fonctionnalité que l’on ne dégaine pas tous les jours: le verrouillage des fichiers, surtout utile pour traiter les fichiers binaires, ce qui est une mauvaise idée en premier lieu !
Le chapitre 8 est un peu frustrant, car il parle organisation du repository. Ce chapitre est bien court pour évoquer l’organisation du repository et des branches, pour le ne pas parler du « multi-repo » qui méritait un meilleur traitement. Sans doute aurait-il mieux valu passer les branches carrément sous silence, car c’est le sujet du chapitre 9 qui suit. Ce chapitre ne traite d’ailleurs pas que des branches mais aussi des tags. Mais sous Subversion, ces concepts sont apparentés. Le texte prend le temps d’aborder la manière de travailler avec les branches, selon un schéma proposé par l’auteur, mais c’est bien ce que l’on attend du texte ! Un bon chapitre.
Le chapitre 10 nous propose une manière d’organiser la structure de notre projet. C’est un peu curieux de trouver cela aussi loin dans l’ouvrage. Pour ma part, je l’aurais fusionné avec le chapitre 8 et peut être placé l’ensemble plus tôt dans le livre… Quoi qu’il en soit, le lecteur en ressort avec une proposition de structuration. Elle en vaut sans doute une autre, mais elle est prête l’emploi. Le livre se referme avec un chapitre 11 consacré à la gestion du code tiers. Cette pratique est moins à la mode aujourd’hui, mais au milieu des années 2000, rapatrier du code et le gérer dans notre gestion de version était une pratique courante. Il était donc logique de couvrir le sujet
Cette seconde édition est presqu’exclusivement un simple rafraichissement. Certes Subversion 1.3 fut un pas important et peut-être était-il utile de remettre à jour certaines informations. Mais cette seconde édition ne propose qu’à peine plus que cela. Elle fait bien le travail, mais n’est pas plus enthousiasmante que cela.
Référence complète : Pragmatic Version Control using Subversion, 2nd edition – Mike Mason – The Pragmatic Bookshelf 2006 – ISBN : 0-9776166-5-7
