← Retour au blog
tech 7 juillet 2026

Pourquoi nous n'avons pas choisi jj : un détail (pas si) insignifiant

Un détail technique sur l'utilisation de .gitattributes a empêché Gradle d'adopter Jujutsu comme système de contrôle de version. Voici pourquoi cela compte.

Article inspiré de la source originale
The (Petty) Reason We Didn't End Up Using jj ↗ blog.gradle.org

Introduction

Dans le monde dynamique des systèmes de contrôle de version, Jujutsu (jj) a commencé à se faire un nom. Avec sa compatibilité Git, jj promet une manipulation simplifiée des commits et une réécriture de l'historique plus sûre. Mais chez Gradle, un petit détail a freiné son adoption. Spoiler : il s'agit des lignes de fin de fichier sous Windows.

Le Blocage : gradlew.bat et .gitattributes

Pour comprendre notre choix, il faut plonger dans les entrailles d'un dépôt Gradle typique. La plupart incluent le Gradle Wrapper, qui est crucial pour exécuter Gradle de manière cohérente. Parmi ces fichiers, gradlew.bat est essentiel pour les environnements Windows.

Sous Windows, la gestion des fins de lignes est cruciale. gradlew.bat doit être vérifié avec des fins de ligne CRLF pour fonctionner correctement. C'est là que le fichier .gitattributes entre en jeu. Il dicte à Git comment traiter ces fichiers spécifiques :

``plaintext *.bat text eol=crlf ``

Cependant, jj ne lit pas .gitattributes. Donc, il ne peut pas appliquer cette règle essentielle par fichier. Résultat : des problèmes dès l'exécution sous Windows, ce qui est un no-go pour nous.

Pourquoi rester avec git worktree

Malgré ses avantages, jj n'a pas encore atteint la maturité nécessaire en termes de compatibilité avec des outils comme .gitattributes. Pour l'instant, git worktree reste notre outil de choix. Il nous offre la flexibilité de travailler sur plusieurs branches simultanément, tout en respectant les configurations spécifiques à chaque fichier.

Les alternatives : qu'est-ce qui fonctionne ?

Git worktree nous permet de gérer efficacement plusieurs branches sans sacrifier la compatibilité avec nos configurations existantes. Alors que jj offre une approche innovante, pour les projets complexes et multi-systèmes d'exploitation, la compatibilité reste un facteur décisif.

L'avenir de jj chez Gradle

Nous n'avons pas complètement fermé la porte à jj. L'outil a du potentiel, et nous suivons de près son développement, notamment la résolution de l'issue jj-vcs/jj#53. Une fois ce problème résolu, nous pourrions envisager de le réévaluer.

Conclusion

La technologie évolue rapidement, et même un détail apparemment mineur peut influencer des décisions critiques dans un écosystème logiciel. Chez Gradle, nous restons ouverts à l'innovation tout en veillant à ce que chaque changement soit justifié par une amélioration tangible. Discutons de ton projet en 15 minutes.

Jujutsu Gradle gitattributes version control git worktree
Newsletter Deepthix · 100% IA · chaque lundi 8h

Un agent IA lit la tech à ta place.

Notre agent IA scanne ~200 sources par semaine et te livre les meilleurs articles le lundi 8h. Gratuit. 1 clic pour se désinscrire.

Voir la page newsletter →

Tu veux automatiser tes opérations ?

Discutons de ton projet en 15 minutes.

Réserver un call