Yeah, dance is good analogy. Lot of training, one little mistake and it is ruined.
For example, if you need to introduce a change in commit "one thing" which would require merge conflict resolving in "other thing", with stgit it would be much easier than with fixup/autosquash.
Or another example. You need to put away "other thing" for a while, and work with "one thing" for an hour, and then apply/fix "other thing". Another set of git tricks needed.
> But I’m not sure I’d take on a new tool dependency just for that.
If you are happy with git, nobody forces you to.
By the way, you don't have to use stgit all the time. I usually just use git, but when a change in a branch requires changing of previous commit, I simply do: stg init; stg uncommit; stg pop. It's easy to convert local repo state to and from stgit.
Generally, it sounds like people are simulated Phab with these tools which is trying to simulate the email patch workflow.
Gitlab-runner can execute any shell commands, so it’s easy to just loop through all the commits and run bazel test.
Gitlab has improved lately and it’s now easier to review each commit in a MR, but you can sense that most of the PM attention is on the single commit/squash everything MR workflow.
I'd say if you wanted to do these kinds of stack manipulations a little bit faster or with a little less cognitive overhead (e.g. named patches vs SHA1 hashes), then investing in StGit might pay off.
I generally would agree that using StGit isn't going to be a slam-dunk win for someone who already has a capable workflow using interactive git rebase.
git commit --fixup :/foo
For example:
(working on one thing) then: (working on the other thing again) then: And in the end, when I’m ready to roll each patch into one commit, respectively: I do realize that Stacked Git allows me to switch between patches. Which is nice because regular Git wants me to type in SHAs for --fixup.But I’m not sure I’d take on a new tool dependency just for that. What are other benefits of Stacked Git? Just wondering if I’m missing something.