4 ms·
> introduces some mental friction in walking away??? I don't think it's just mental friction. Suppose you've learned git well enough that everything you do in
by hansvm 11mo ago
> introduces some mental friction in walking away???
I don't think it's just mental friction. Suppose you've learned git well enough that everything you do in it is automatic and fast, and the things which aren't fast by default you've built aliases and tooling for over the years. Yes, starting from ground zero you might want something like jj, but at the current point in your life you're not starting from ground zero. Switching to jj means learning another tool to achieve similar outcomes on your workflows.
- tcoff91 11mo agoBut with jj there are better workflows that aren’t really doable with git.
- jhhh 11mo agoLast time I saw this claimed (maybe from steve's tutorial?) it was just autosquash. Do you have another example?
- tcoff91 11mo agohttps://ofcr.se/jujutsu-merge-workflow https://ofcr.se/jujutsu-merge-workflow With `jjui` this strategy takes only a few keystrokes to do operations like adding/removing parents from merge commits. It's so nice to have like 4 parallel PRs in flight and then rebase all of them and all the other experimental branches you have on top onto main in 1 command. Also, I cannot even stress to you how much first-class-conflicts is a game changer. Like seriously you do NOT understand how much better it is to not have to resolve conflicts immediately when rebasing and being able to come back and resolve them whenever you want. It cannot be overstated how much better this is than git. Also, anonymous branches are SOOOO much better than git stashes.
- 1718627440 11mo ago> Also, anonymous branches are SOOOO much better than git stashes. You can do anonymous branches in Git as well. I use both for different use cases.
- tcoff91 11mo agoThe UX around anonymous branches in git is not nearly as good as jj though. Also git has no equivalent to the operation log. `jj undo` and `jj op restore` are so sweet.
- feelamee 11mo agoisnt jj undo the equivalent of git reflog (+ reset/checkout)?
- deleted 11mo ago[deleted]
- martinvonz 11mo agoMostly, yes. It also covers changes to the working copy (because jj automatically snapshots changes in the working copy). It's also much easier to use, especially when many refs were updated together. But, to be fair, it's kind of hard to update many refs at once with Git in the first place (there's `git rebase --update-refs` but not much else?), so undoing multiple ref-updates is not as relevant there.
- 1718627440 11mo agoI can't comment on the UX of jj, but with git you literally just specify the commit, it doesn't feels tedious to me. > Also git has no equivalent to the operation log. For easy cases it's just git reset @{1}, but sure the oplog is a cool thing. I think it will be just added to git eventually, it can't be that hard.
- martinvonz 11mo agoYou can specify a commit, yes, but how do you remember your set of unnamed commits? Once HEAD no longer points to a commit, it will not show up in `git log`. I agree that Git could gain an operation log. I haven't thought much about it but it feels like it could be done in a backwards-compatible way. It sounds like a ton of work, though, especially if it's going to be a transition from having the current ref storage be the source of truth to making the operation log the source of truth.
- steveklabnik 11mo agoIt really just depends. I was very comfortable with the git cli. It didn't take long to learn jj's, and I'm faster with it now than I ever was with git, simply because a lot of things are easier to do and take less commands.
- stouset 11mo agoIf jj took many weeks of relearning, I might be right there with you. But the overwhelming majority of people I’ve personally seen who try the switch convert within a day, are barely slowed down by day two, and are effectively fluent within three days to a week at most.