http://www.kylheku.com/~kaz/mcvs.html
Meta-CVS has an import feature (mcvs grab) which detects renamed files. It fixes up symlinks pointing to moved files too and such.
Meta-CVS didn't catch on widely because by the time I had it stable, CVS itself was being side tracked by newly emerging projects like SVN.
Plus people were afraid of it being written in Common Lisp.
If you're still using CVS in 2018 and not Meta-CVS, you're ridiculously backwards though. :)
https://www.dwheeler.com/essays/scm-security.html
On top of yours, the OpenCM and Aegis programs attempted to meet some of these requirements. Most ignore them. Big, blind spot in software security.
That's really where it's coming from, wasn't really trying to be snarky or anything.
OpenBSD could easily use Git if they wanted to, and they'd never have to touch MS code, or an MS Web property.
Git is used by a comparatively small captive audience; most git users are invested in GitHub. MS is well positioned to run their "embrace, extend, extinguish" play if they wanted to.
Note that there is a mirror on github at https://github.com/openbsd and to my understanding, developers who prefer git use that, but the official source tree is in CVS.
The underlying security of the operating system and user applications running in it has very different risks and benefits versus the integrity of source code commits and who gets to make them.
The latter is something they're equipped to deal with without changing tools. They've decided that the costs of making that technology change aren't worth the benefits that it provides and I mostly agree.
Have you considered CVS may have been finished for over a decade? OpenBSD has been using it for a long time, and it clearly meets their needs, or they'd chose from one of the many other choices.
In my own experience, it's nice to use finished software, step off of the upgrade treadmill, and get to the end of the learning curve.
Feature bloat, totally agree. But even for bug fixes and performance improvements, I have a hard time believing this is truly finished.
Based on the timeline of CVS, I doubt there are that many large performance issues that can be fixed without significant risk of breaking. In my experience, CVS was primarily limited by network and disk I/O, both if which ate generally much improved since the time of active CVS development.
Keep in mind that the effective scope of CVS is also shrinking as many users move on to other software; that means any issues are less likely to surface.
https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/cvs/
It's not especially active, but you can see the last change sets were in the past year, so "not maintained for more than a decade" doesn't apply to what they're using.
The CVS that OpenBSD uses is still GNU CVS - https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/gnu/usr.bin/cv...
I thought I remembered -current moving to opencvs some time ago, but either I mis-remembered or they moved back.