37 karma · joined June 27, 2013
jj always, automatically turns your current state (even if it's empty) into a "change" which is like a commit (it has a hash). in practice, this was actually incredibly annoying. when working in git, you often think about the current commit you're on, and amending/making a new commit. with jj, you're actually making "changes" (which are like commits) constantly. it's also so infuriating that there are two sets of hashes, jj changes and git commits, and they are not the same/interchangable.
on the flip side, sapling has been a breeze. it does force you to one commit per PR (which might be annoying to some but if you're going to squash the commit into main when you commit, why not do it locally too). its inter-op with github is really nice, you can do `sl goto pr1234` and it will just bring you to the code for pr #1234 (and fetch it in the process if you don't have it locally).
Term's grouping of output is pretty amazing, I think, and blows away almost any shell + terminal combo.
from interface: with Term each output is put into its own scrollable textbox. That way if you run a command that spits out a lot of output (e.g. grep or make), it won't obscure your previous commands.
There's also the command textbox which solves some problems I've ran into. For example, if you want to modify a long command, it can be kind of difficult if you haven't set up vim bindings with your shell or if you aren't quite adept at navigating the command-line. But since this is a normal textbox, you can use your mouse to click to where you want to edit.