I was inspired to try Jujutsu when I saw a link to Steve Klabnik's Jujutsu tutorial; I'd heard about the tool a few times, but hadn't made the jump.
Note: unlike some of my other posts, this one will be updated as I notice things.
The Good
-
I am really appreciating the sense of safety that comes with versioning the working copy. I've done that before, by integrating tiny commits into my editor, but that got cumbersome with always having to rebase and manage those changes.
-
The fact that it can colocate with an existing git clone is delightful. I've tacked
jj
on to some of my existing repositories, including one at work, and am experimenting "in prod" as it were. -
The way jj displays conflicts is excellent.
The Different
-
Implicitly named branches has been interesting to get used to, but I've actually found I don't spend a lot of time thinking about it. I'm going to investigate ways to make a default template based off of a "slug" from
@
's description. -
I have a habit of keeping "personal" untracked files around, scripts that I don't feel like moving to PR review, or WIP changes that are in new files and I don't keep a full branch for. Jujutsu really doesn't play nice with this workflow that is, honestly, not Git-friendly either, but is an old habit. I'm probably going to need to find a nice, friendly way to make cheap local WIP branches for those.
The Bad
-
This almost fits under different intead of bad but I'm really not fond of the length of the
--limit=
flag forjj log
; limiting the log to different lengths is something I do a lot and git's affordance for it (git log -5
) is an elegant, helpful shortcut. -
It looks like
jj
is deprecating the automatic use of@
-- the current edited change -- in a lot of commands, requiring the use of-r@
in a lot of commands that otherwise would "just work"; I'm not fond. I'm hoping there's a setting somewhere that I can use to restore this. -
The lack of an easy way -- that I've found, so far! -- to one-shot "move the tracking bookmark I'm working on to the tip of my current revset" -- is frustrating. I have thus far failed to develop a usable alias for
jj bookmark move <figure-out-this-name> --to @
Edit: I have been shown a solution to this by Nathan Witmer in his Jujutsu tips and tricks article. The short answer is an alias called
tug
that is documented in the Bookmarks and branches section of his article. -
A total lack of decent Emacs support for this VCS is really challenging me. I live in Emacs nearly full time, and I miss support for merging in smerge-mode, and my god do I miss the UI of
magit
. If I give up on this experiment, it'll be because I don't have magit support. -
No support for pre-push hooks. pre-commit support and general hook support are just missing. That's fine 90% of the time for me, but my employer's main repository does some seriously heavy lifting in its pre-push hook that saves a lot of time.
You can reply to this post via Mastodon:
Waiting to load comments