jj v0.40.0 released
67 points by dpassen
67 points by dpassen
Always fun to see a new release of jj!
I have been using it since the summer and cannot imagine going back to Git now. I feel so much more fluid with JJ.
Likewise! Except for a few personal repos that use git-lfs.
Anyone know if jj has any sort of support for storing large files? Importantly I don't need compatibility with git-lfs: in the cases where I need large files I control the repo and don't need to worry about native git users.
jj does not yet have specific support for large files. It's something that is desired to have support for in the future, but the only movement I'm aware of in this area directly so far is compatibility with git-lfs.
Looking forward to git-lfs compatibility, even if it’s just the bare minimum read-only support. Right now I have to fallback to git-branchless for some repos and it’s a bit cumbersome.
I haven’t run a git command yet in 2026. Hoping I can stick the landing
I use git push --tags as there isn’t jj equivalent, as far as I know. Or is there?
also it's kind of strange that they have jj tag but there's no way to push tags
Note that jj tag can only create lightweight tags, which often isn't what you (should) want: https://github.com/jj-vcs/jj/issues/5426
It is, but there's a pretty basic reason behind it: the jj team creates tags via GitHub. So reading tags is sort of the mvp version of the feature. Nobody has bothered to write the "create a tag" code yet. I believe that if someone did, it would be accepted.
There's some discussion about if jj git tag should make heavy weight or lightweight tags by default, right now it's lightweight.
I'm just thinking I should switch for personal projects. Is there some tutorial / overview that you found useful? I'm using AI for so much these days but I think an old fashioned article is what I need here.
I've seen Steve's jj tutorial recommended in various places, and it's one of the things I used when getting up to speed with jj
I first started seriously considering jj after Steve Klabnik's post (hello steve), and more when I saw tangled adopt parts of it. I bounced off it several times before I cracked it last week.
I primarily work on solo projects, which means I mostly hack directly on main. So I came to jj with none of the usual complaints about merging and squashing and was skeptical that I would get any additional utility from it. I have not found this to be the case: rather, I am now free to branch all the time, formulating different ideas for a bit before letting them sit while I work on another area, and then returning to finish them off when I'm ready, all with ease and free of conflict. This has been particularly impactful on my website, where I would use git stash as a horrible staging area for draft posts.
So now I'm converted, a big fan, and hopeful for the future of the tool.
Hi!
Glad everything clicked! One thing that happened recently that might be useful for you too is jj bookmark advance, which a lot of people who work on "I hack directly on main" find useful.
Thank you for this! As another solo hacker, I basically stopped pushing for lack of this cmd.
i really want to fully swap out git for jj, but my muscle memory isn't letting go. does anyone have a recommendation for some kind of... reminder tool? basically, i want the git cli to yell at me and say "hey, here's how to do that with jj, try that instead"
I’m loving jj. One of my favorite features is the contextually unique short prefixes for ids (change ids and commit ids). I’ve never figured out an easy way to quickly refer to an arbitrary git commit in the log except by typing out six to seven characters of the full sha and hoping that’s enough. Jj is so much nicer here.
One thing I’ve really missed from Git is an ergonomic equivalent to git log -S or -G. I know you can use a revset function but it’s a PITA to type that out and it also doesn’t filter the diffs to the relevant lines.
I'm not sure what the exact template/revset would be to get the same as -S or -G, but if you did find something you like, don't forget you can add it as an alias, that way you don't have to type it out every time.
I've been using jj for almost a year and I've been loving it, now days I only use git for repos that need submodules or to export patch sets
Anyone have a good solution for creating a bookmark and auto-tracking it against remote? It's annoying having to remember to track the bookmark everytime i create a new bookmark. I'm thinking of a convenience command like jj tug.
This inspired me to give jj another try today. I prepped a few changes and went to jj describe before I remembered to clean up my untracked files. I aborted the describe but it still updated those files within the git repo to be tracked. So annoying.
The trick is to run jj new without describing. “Oh, this will be something different… jj new”. You can add descriptions after the fact.
And, of course, you can reshuffle things between changes later on too