4 ms·
Teach jj (jujutsu) instead. The idiocy that is "staging" is the primary problem with Git. 99% of people do not need "staging" and yet Git inflicts it on every
by bsder 2y ago
Teach jj (jujutsu) instead.
The idiocy that is "staging" is the primary problem with Git. 99% of people do not need "staging" and yet Git inflicts it on everybody.
"Staging" (and "stash") makes Git modal, and that's a pain in the ass.
Having taught people both Mercurial and Git, I can tell you that teaching Git is simply a losing battle. Fortunately, jj operates just like Mercurial but can coexist in the Github ecosystem.
- starsixtynine 2y ago[flagged]
- wingerlang 2y agoWhat is wrong with staging? I don't even consider staging until it is time to commit, at which point it is a little area to gather the exact changes you need.
- sunshowers 2y agoStaging is an extra concept that adds complexity. Jujutsu shows you can achieve all the power of a staging area with strictly fewer concepts.
- wingerlang 2y agoI don't know how others use it, but to me the staging area only lives for X seconds and acts as a last stop to simply select the exact changes and lines I want to actually commit. With a GUI, it becomes crystal clear as to what it is. From what I can tell about JJ's split command, it seems like it does the same thing except you're working backwards to split out changes into another commit. Both seems fine, I just don't see the complexity with the staging area (unless you're a beginner who's been told to only use the CLI at all costs).
- deleted 2y ago[deleted]
- sunshowers 2y agoThese things add extra complexity throughout the ecosystem, not just for the end user. Most tools written on top of Git have to be aware of the staging area. Git's own developers, when adding new features to it, need to be aware of the staging area. Jujutsu's authors have pointed out that a simpler model (here, and with first-class merge conflicts) helps them move much quicker. There are many weird and exceptional states with Git that just don't occur, so new features are more straightforward to add.
- jajko 2y agoMercurial is Git without at least 50% of its hassle. This was valid 15 years ago when I last worked with M, I suppose it didn't get worse since then but rather improved. Shame Git won so vehemently, most software projects don't need that much power (and guns to shoot their own feet), but cargo-culting after Linus was too strong a lure I presume.
- sunshowers 2y agoJujutsu is by former Mercurial contributors, and is very heavily inspired by Mercurial.