Hacker News new | past | comments | ask | show | jobs | submit login
The NetBSD Core Group statement on version control systems (2025) (netbsd.org)
5 points by cnst 26 days ago | hide | past | favorite | 4 comments



Why Mercurial?


TBH, I never found that answer. I don't know anyone who still uses Mercurial in any way, and it's the exact same GPL license as Git, so, it's not even "nicely" licensed, either.

NetBSD has previously used Fossil-SCM, which is at least a BSD licensed SCM, and at least it has several interesting selling points compared to the rest of the SCMs.

Isn't the selling point of Mercurial, the Subversion compatibility? Who cares about Subversion?


> Who cares about Subversion?

It was much better than CVS, but, at this point, it really would make no sense to move to it.

Subversion has one quality on its side for monorepos - you can checkout a subtree. You can't do that easily with neither Git nor Mercurial.


> It was much better than CVS,

I completely disagree on that part. SVN was a namespace nightmare, the whole repo history was expressly a monorepo (else, all your monotonically-increasing revision numbers would change), there was no per-file revision control whatsoever.

SVN basically had all the drawbacks of both CVS /and/ Git, yet without most of the benefits of either CVS /or/ Git. Subversion was a dead-end however you put it.

I would use either CVS /or/ Git over Subversion any day. I'd rather use CVS than Subversion, and I'm being completely serious here. If we look at the 4 major BSD projects today, half still use CVS, whereas the only one that has switched to Subversion at one point, already migrated to Git, so, it's 0/4 SVN, 2/4 CVS and 2/4 Git now.

I once tried doing a local mirror of Subversion of the FreeBSD tree when they still used it. It was a total failure; it was basically a complete regression compared to the ease with which you can mirror the entire CVS history of any of the other BSDs at the time. It used up WAY-WAY more storage than either CVS /or/ Git. There was no way to selectively mirror things with Subversion, unlike with CVS. (At least Git uses a really smart packing system and compression, so, even if you have to mirror the entire tree, it's still relatively small, compared to SVN.)

CVS is actually very lightweight, simple and flexible to deal with, and the fact that it's still the version control system of choice of NetBSD and OpenBSD, to this day in 2025, proves that it's actually relatively scalable to this day, even for very large projects with a very extensive multi-decade history. Whereas Subversion was so poor that even FreeBSD, an early adapter, moved off of it in 2020.

BTW, for the sake of completeness, DragonFly BSD has completed migration from CVS directly into Git back in 2008 — https://leaf.dragonflybsd.org/mailarchive/commits/2008-11/ms... — that's close to 2 decades ago now — or, to be more precise, just a little over 16 years ago now!




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: