this post was submitted on 18 Jul 2026
70 points (100.0% liked)

Programming

27755 readers
459 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 3 years ago
MODERATORS
 

Working with lots of changes in parallel on git can be painful. You end up juggling branches and commits, and running scary rebase -i commands that can leave your tree in a half-broken state if you so much as sneeze.

jj, an alternative to git, gets discussed a lot these days (1, 2, 3, 4) and is often pitched as a solution. While I’m very sold on the problems jj is trying to solve, the way it solves them hasn’t quite hit home with me. Every 3 months, for the last 1.5 years, I try it out for a few days, really trying to make it part of my workflow but eventually I give up and go back to git.

That’s where git history comes in.

you are viewing a single comment's thread
view the rest of the comments
[–] hallettj@leminal.space 1 points 12 hours ago (1 children)

Oh, nice! Does this do something like Git Butler where you can have multiple branches "checked out" simultaneously, and keep track of which changes belong to which of those branches as you work? But maybe without the commitment that Git Butler requires to using its tooling?

[–] eleijeep@piefed.social 1 points 3 hours ago

I've never used Git Butler, but looking at their site it looks like a whole UI layer on top of git.

Topgit is just a small set of shell scripts that implement the various tg commands for managing your patch branches.

It's based around the idea of patch queues, but since it's using git branches you can have a tree of patch branches instead of just a linear patch queue.