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.