This blog post is a counterpart of my earlier post Managing stack pull requests with Graphite. Because I have quit my previous company that purchases Graphite licenses, and also because Graphite is priced ridiculously high (that I can’t afford out-of-pocket), and I don’t use its UI, for reasons, I am still more comfortable using GitHub UI, maybe because that’s more familiar to me. $20 per user/month is too much compared to $4 per user/month of my GitHub Pro, that comes with almost everything.

Anyway, that was the reason for me to explore an alternative.

It’s again, a lazy post, so I’m gonna jump straight into bullet points.

There are most frequent commands that I use to manage stacked pull requests with git-spice CLI in my workflow:

  1. gs branch create/gs bc - To create a new Git branch and uses the current branch as the base
  2. gs stack submit/gs ss - To submit my stack, and automatically creates a PR
  3. gs repo sync/gs rs - To sync branch updates from remote, and automatically deletes merged branches
  4. gs stack restack/gs sr - To manually trigger a restack
  5. gs log long --all/gs ll -a - To look at the dependency tree
  6. gs branch rename/gs brn - To rename a branch

Everything else? Same as in Managing stack pull requests with Graphite.

What I like about git-spice besides it’s free? Link to heading

  1. Almost all options are configurable, and can be override via CLI flag. Because it utilizes the .gitconfig file, settings can also be global and per-repository.
  2. Branch prefix actually works (with gs branch create/gs bc)! 😂 Surprisingly, I couldn’t get it to work well enough with Graphite that I gave up.
  3. Almost all subcommands have short alias builtin. Flying on the keyboard!
  4. Every time I need to do repository sync, Graphite always forces me to restack everything, … which forces me to force push everything, and I couldn’t find a way to disable this behavior. While git-spice would only warn me and I can override it.

Should you all switch? Link to heading

Depends, as always. Graphite is a team-focused product, so all my stacks would be saved on cloud in addition to local, kinda as a backup, and easy to share with my colleagues. While git-spice is local-only.