October 20th, 2024

Jujutsu (jj), a Git compatible VCS

Jujutsu (jj) is a new Git-compatible version control system that simplifies workflows with a user-friendly interface, focusing on changesets. It is still under development, with some features lacking.

Read original articleLink Icon
Jujutsu (jj), a Git compatible VCS

Jujutsu (jj) is a new version control system (VCS) that is compatible with Git, designed to improve user experience while maintaining compatibility with existing Git tools. Tony Finn, a developer with experience in various VCS, shares his insights after using jj for two months. He highlights that jj offers a more user-friendly interface compared to Git, focusing on changesets rather than commits, which allows for stable identifiers even when changes are revised. This design simplifies workflows, particularly in branching and merging, and reduces the number of concepts developers need to grasp. jj's command line interface is consistent and intuitive, making it easier to learn. However, jj is still in active development, which means some features are missing or subject to change, such as the lack of support for tagging and SSH functionality issues. Despite these limitations, jj has shown promise in handling merge conflicts and streamlining workflows, making it a compelling alternative for developers looking for a more efficient VCS experience.

- Jujutsu (jj) is a Git-compatible VCS aimed at improving user experience.

- It focuses on changesets instead of commits, providing stable identifiers for revisions.

- The interface is designed to be simpler and more intuitive than Git's.

- jj is still under development, with some features missing and potential issues with SSH support.

- It has shown effectiveness in managing merge conflicts and enhancing workflow efficiency.

Link Icon 9 comments
By @cupofjoakim - 4 months
I'm still unsure of why I'd want to move to jj from git.

My ideal git workflow is pretty simple:

1. `git switch -C new-branch` 2. Make changes, time passes 3. `git add .` 4. `git commit -m "Description of changes made"` 5. `git fetch && git rebase origin/main` 6. `git push` 7. Make pr to main

If main is out of date I rebase again to update.

This to me feels pretty light weight and is not a hinderence in any way on my day to day tasks.

What exactly makes `jj` better? Is there a specific usecase i'm not understanding?

By @yencabulator - 3 months
I've so far failed to see why jj needs to reimplement git to add some UI pleasantness.

To me, the real value I saw when playing with jj was the drag-and-drop change history manipulation in the `gg` GUI app -- and as far as I can tell, that could just as well live directly on top of git.

https://github.com/gulbanana/gg

https://www.youtube.com/watch?v=cD9L3Mi1Vy4

By @itohihiyt - 4 months
A tutorial on this was on the front page yesterday: https://news.ycombinator.com/item?id=41881204

I don't see why I'd use this over fossil for my personal projects though.

By @tambourine_man - 4 months
Broken link to GitHub (double dot). Second paragraph:

https://github..com/martinvonz/jj

By @fulafel - 4 months
Is there a sales pitch for git users who are of the history preservation school of thought, does the changeset id stability help tracking what happened in the automatic merge heuristicss applied during rebases?
By @ksec - 4 months
If Jujutsu ever picks up steam and becomes a replacement of Git, I wish the Github version for it will be called Kaisen.
By @baq - 4 months
By @the_real_cher - 4 months
The extents people will go to, to avoid having to spend a morning learning git