HN user

mmmulani

37 karma
Posts4
Comments4
View on HN

I tried out both for a week each and much prefer Sapling.

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).

definitely. While zsh has great default tab-completion, it still kind of sucks when there are multiple results for a completion but zsh doesn't inform you unless you hit TAB multiple times.

Term's grouping of output is pretty amazing, I think, and blows away almost any shell + terminal combo.

from the technical point of view, it's largely different as Term uses its own shell whereas iTerm2 would use your shell (probably bash or zsh).

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.