Avstin Kim wrote on Mon, Jul 22, 2019 at 10:58:50AM -0400:

> CVS for source code management.

That's kind of a frequently asked question.

Some of us (including myself) actually prefer CVS over git for tasks
where it is suffiecient because KISS.

Other developers prefer git for various reasons.

> I am curious why the Project continues to use CVS

The most important reasons are:

 (1) Switching from CVS to git is extremely hard.  Even with the
     best tools available, and even when you improve them further,
     it is hard, almost impossible, to avoid destroying part of the
     history during the conversion of the repository.  OpenBSD
     values correctness very highly, and it also highly values the
     abilty to audit code, including forensic auditing of code
     history to determine, once bugs are found, how they were able
     to happen.  So correctness and completeness of history matters.

 (2) Git is fragile and easy to misuse with surprising consequences.
     Well, admittedly, some aspects of CVS are also fragile, but
     the number of traps is smaller and developers are already
     used to the quirks of CVS, while the more numerous quirks
     of git would likely cause surprise and disruption.

 (3) Not all developers are convinced switching is even desirable,
     and never change a system that is working well unless there
     are strong reasons to change it.  I admit, though, that for
     very large commits, in particular for Perl updates and for
     sweeping infrastructure changes in the ports tree, there
     would be undeniable benefits from switching to git.

 (4) Almost all developers prefer working on actual quality and
     functionality of the system over spending time and effort on
     infrastructure around it, unless the latter is really
     important to make progress with the former.

> if developers have in the past considered migrating the codebase
> to a distributed SCM system

You can safely bet that they did.

Actually, switching to git has been considered very seriously
multiple times in the past and may or may not happen one day.

However, it requires rewriting git from scratch because the reference
implementation of git is not free software.  It comes infected with
a viral license.

That's another reason why switching implies a large effort and an
inevitable distraction from other, arguably more important OpenBSD
development.

Admittedly, the implementation of CVS we currently use isn't free
software either, it's GPLv1.  But we do not introduce any new
non-free software into the tree if there is any way to avoid that.

> Mercurial

Not free software either (same viral license), never used it
personally, and never heard any developer propose it.

> make branching and merging easier on developers,

Branching and merging ist strictly prohibited in the OpenBSD
repository.  Our development process simply neither needs nor allows
use of these features (except in a trivial way for -stable branches,
which novice developers never work on in the first place), so that's
not an argument at all.

Yours,
  Ingo

P.S.
Regarding what Raul Miller said:
Git does not require a particular development process but can support
a wide variety of different processes.  In particular, you can
require review of patches before push, and you can ban sending out
patchsets and require individual OKs for each indivual patch.  So
what you said does not qualify an an argument against using git.

Reply via email to