Quand Git préfère lâcher du lest plutôt que de mourir en verrouillant son index
Le Courrier de l'Oignon s'immerge dans les arcanes du contrôle de version avec un correctif qui évite à Git de s'effondrer bêtement. Une plongée passionnante où l'on découvre que même les outils les plus sérieux ont parfois des crises existentielles face à un simple verrou.

Ah, les joies du développement informatique sur le réseau Tor ! Loin des sentiers battus, on tombe parfois sur des pépites d'une technicité exquise, comme cet échange de courriels autour d'un patch destiné au vénérable logiciel Git. Notre héros du jour, un développeur répondant au doux nom de Szymon Wilczek, s'est retrouvé face à un problème aussi subtil qu'agaçant lors d'une session de rebase intensif agrémentée d'un Magit un peu trop zélé en arrière-plan.
Le drame se noue autour de la fonction `write_index_as_tree()`, qui avait la mauvaise habitude de verrouiller l'index avec un drapeau d'intransigeance totale (`LOCK_DIE_ON_ERROR`). Résultat des courses : si un malotru de `git status` osait poser sa patte sur le fichier `index.lock` au mauvais moment, c'était le plantage assuré. Git préférait mourir sur le champ plutôt que de négocier poliment, laissant le malheureux utilisateur avec un dépôt dans un état intermédiaire délicat et force jurons dans le terminal.
Heureusement, le patch proposé prend le problème avec philosophie en optant pour un verrouillage beaucoup plus doux. Puisque le verrou ne sert finalement qu'à une écriture optionnelle de mise en cache, autant laisser passer les autres processus sans tout casser. Les relecteurs du projet n'ont d'ailleurs pas manqué de peaufiner la formulation, rappelant avec ce sens du détail qui caractérise les grandes communautés open source que la pédagogie d'un message de commit commence toujours par l'exposé clair du symptôme.
On ressort de cette lecture rassuré : même dans les recoins les plus cryptiques du web profond, des passionnés veillent pour s'assurer que vos fusions de branches se passent sans drama fatal. C'est beau, c'est rigoureusement technique, et cela prouve hors de tout doute que le code source a parfois sa propre poésie dramatique.


