Github Enshitification, This comment has been minimized. Sign in to view

https://sh.itjust.works/post/17912814

Github Enshitification, This comment has been minimized. Sign in to view - sh.itjust.works

Are you guys fine with these new shenanigans from Github. I found a bug and wanted to check what has been the development on that, only to find out most of the discussion was hidden by github and requesting me to sign-in to view it. It threw me straight back to when Microsoft acquired Github and the discussions around the future of opensource on a microsoft owned infrastructure, now microsoft is exploiting free work from the community to train its AI, and building walls around its product, are open source contributors fine with that ?

My hot take is the quickest way out of this quagmire is to abandon Git. With the education system raising kids to thing MS GdtHub is Git, it would probably be less work to start rolling with another VCS as they won’t have the agility to pivot from Git. Git isn’t even that great—arcane CLI, patches don’t commute, basically permanently locks in your name & email, large files require a separate tool, etc. And most of the popular alternative forges are literally just trying to clone MS GitHub rather than invent something new or solve the shit problems it doesn’t like threading, pull request model sucks, source code doesn’t need to be a social media platform with gamified stars & anxiety inducing activity charts to encourage that MIT code in your free time the corpos will use & never contribute back…

Nah. Start anew. Check out Darcs, Pijul, Fossil, Mercurial, or whatever else is out there.

Wtf just use gitlab/gitea/whateverthefuck instead of Microsoft garbage

Your project will inevitably get forked onto MS GitHub & the SEO will rank that fork above you—changing VCS adds a layer of friction that discourages forking back onto MS GitHub. Microsoft has a massive pull in the direction Git goes, & whatever MS GitHub does, the alternative forges seems to want to clone their feature even if it’s bad (look at Forgejo diverging from Gitea to copy Actions verbatim even tho we all know working with YAML for CI is a bad idea that scales poorly).

And again, Git is not the best DVCS—but folks are hesitant to try other platforms since there is less forges & tooling. If Microsoft is controlling the Git ecosystem like it is, that effort, in my opinion, would be better spent choosing a better DVCS system that isn’t already infected by Microsoft or Google or Apple or similar.

Git is not the best DVCS

What would you suggest is a better DVCS than git?

Personally, I find the Patch Theory options the most compelling since fundamentally patches should commute—weaning it doesn’t matter if patch α or patch β was merged first & you start to feel weird that you get merge conflicts despite the same end result in something snapshot-based. The two big contenders are Darcs, the still-maintained pioneer in the space & new(ish)comer, Pijul. Darcs has less rough edges being about as old, stamse as Git but has some performance issues (where some of the old perf issues are fixed, some remain) & being Haskell, libraries get created since that community loves to code more than it likes to maintain so libraries can go out of date & package tooling still isn’t what it could be. Pijul, memes aside, is written in Rust with some more modern sensibilities & a really cool idendependity identity management system (you can hide your name/email for privacy, or change it to not be deadnamed & not have to raise a merge request to rebase you identity on all repos you contributed), but it’s pretty barebones despite being technically feature complete I believe—with rebase being missing feels like a glaring issue as the way to fix patches isn’t fully exposed. Nest, the forge of the creator, is pretty lackluster too IMO from featureset to self-hosting stack without any real alternative yet. It’s still a project worth watching & SSH+HTTPS work fine for hobby projects. Darcsden is fine but not great, but newly started Smeederee seems to be going in a good direction, the rest of the forges are written in like Python 2. …Which is the part where I would like to see some of that yet-another-Git-forge effort flow into these channels.

Fossil is interesting too for shipping the whole forge, & have heard great for small teams as that is what is optimized for, but I haven’t used it.

Darcs - Theory

Pijul is a very exciting project. I’ve wanted to try it for months buy haven’t found the time.

Not to say don’t (do try it), but Darcs might be better if you just want to understand some of the fundamentals since it’s more mature. A small project will not perceive any performance difference. If you use Git’s CLI heavily, Pijul’s CLI will seem barren in comparison & tooling even like gitgutter in Vim doesn’t have support. Pijul’s diff isn’t GNU diff compatible so that tooling won’t help.

If you grasp Darcs, moving to Pijul is pretty simple since they are based on the same theory—you just might need to be committed enough to start building your own tooling which is more of a time commitment. Pijul is meant to be scripted which is partly why it’s barren—so for a trivial expample I created a small shell script pijul-amend which wraps pijul record --amend which is picked up as pijul amend mimicking darcs amend. Maintenance is easier when a project supports only the minimum set of commands, but you’ll be building your own ergonomics (no rebase, no send-mail, etc.). Maybe in the future when there is a bigger contrib space to fill in the gaps, it won’t be such an investment to just to test out.