| I was a happy mercurial user until market forces and consulting needs made me, regrettably, use the inferior, more complex, more error-prone git. I have used it already for a few years and can't for the life of me figure out how to solve problems with it. I just have a bunch of aliases that abstract away for the inconsistency of its commands. Now, I switched to `jj` a month ago and basically, I have learned around 60%-ish of it. And more importantly, I have gotten out of a bunch of serious trouble (you can UNDO!!!!) already. But if this rant is not enough: * You can UNDO. Everything. That is the major thing * You can switch from one `branch` to `another` and leave things incomplete, even conflicts, that is nice. * The command made sense * Nobody else knows you use `jj`, so no barrier to adoption. * Rebases are not painful anymore. Stacking prs are finally nice to author, even of NOBODY ELSE KNOW IT! The major troubles: * Not yet support for major tools, ides for it. It stays in `detached head` which is not as nice as showing the current branch on IDEs, and when you are fixing conflicts some tools do not get the diffs. * No mature UI tool. I use `gg` which is fine enough But the above is just temporal problems. Git will never be `fixed` or improved, so is pain forever. |
Right? I even started with git, and had been somewhat comfortable with it for years. Then I joined a mercurial shop, and was more proficient with `hg` in 1 month than I had been with `git` after 5 years. It ruined me on git forever, I can't see it as anything other than a mess of wrong abstractions.
And unfortunately, these days I'm back using git with the rest of the world. Can't wait for the day when Jetbrains gets a good plugin for either `jj` or `sapling`, and I never have to google another git command again ...