TL;DR
A team attempted to adopt the Jujutsu (jj) version control system to replace Git in their workflow. However, they encountered issues due to Gradle's reliance on specific line endings for its wrapper script on Windows.
✦ Why It Matters
Ensure your project's line endings are compatible with the tools you plan to use, like jj and Gradle.
Key Takeaways
Full Summary
Jujutsu (jj) is a Git-compatible version control system that simplifies commit management by eliminating the staging area and allowing for easy history rewriting. An engineer attempted to adopt jj for daily use within a Gradle project, which typically includes a Gradle Wrapper script named gradlew.bat.
This script relies on specific line endings to execute properly on Windows, necessitating CRLF line endings. However, jj's handling of files led to LF-only line endings, causing the script to malfunction.
The issue was identified as a minor detail but could significantly impact many teams in the JVM ecosystem. This experience underscores the importance of understanding file handling nuances when integrating new tools into existing workflows.
Engineers should be aware of such compatibility issues when considering jj for their projects.
Related