Hi, all, Sorry, been hella busy rushing to finish final graduation projects for school and had no idea so many people weighed in with so much awesome feedback!
> That said, OpenBSD has a cultural restriction of requiring people to > inspect the patches before incorporating them. Adopting git would be a > step away from that practice. I was suggesting Mercurial (hg), not Git; I know Git would be problematic for the OpenBSD Project in many ways. Plus I find it unnecessarily complex. And also, regardless of which SCM was used, responsible area owners would obviously be required to inspect patches before merging into the main branch, so I don't see why adopting hg would necessarily be a step away from that practice. > Some of us (including myself) actually prefer CVS over git for tasks > where it is suffiecient because KISS. I definitely appreciate the KISS argument, but I still feel that for new developers Mercurial would present a lower learning curve than CVS; isn't that also a fair measure of simplicity (conceptual simplicity)? > it is hard, almost impossible, to avoid destroying part of the > history during the conversion of the repository. That argument makes sense; but on the flip side that argument also seems a little fatalistic, basically resigning oneself to being stuck with CVS forever because no one wants to invest the energy of activation required for migration. I think back to how the FreeBSD Project moved heaven and earth to migrate from CVS to SVN, a bold and technically challenging undertaking that impressed the hell out of me personally; that was also not trivial, and I understand that the FreeBSD Project has greater staffing and resources, but I honestly believe OpenBSD developers could be up to the task of even a greater migration, e.g., from CVS to Mercurial (but only if >= 99% of the OpenBSD developer community were all on board, i.e., a consensus of buy-in emerged from the community so everyone would be all in so as not to engender hurt feelings or animosities). > 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. I can't argue with that, and obviously code quality is infinitely more important than what SCM you use, but I feel you run the risk of turning off potential new developers coming out of colleges and universities who cut their teeth on distributed SCM systems like hg and Git who might be taken aback at why the Project is still stuck with CVS (and again, I am not advocating for Git; though if it isn't obvious by now I really believe OpenBSD developers would honestly like Mercurial; to me it just seems consistent with OpenBSD's culture of cleanliness and simplicity). I understand the flip-side argument, that I'm sure some developers might be personally proud of having arcane CVS knowledge borne out of slogging through for years with CVS, but to me that seems more like an issue of personal pride than an indication that CVS is objectively better than hg. > However, it requires rewriting git from scratch because the reference > implementation of git is not free software. It comes infected with > a viral license. Isn't CVS also GPL-licensed? Or did OpenBSD completely rewrite CVS from scratch under a BSD license? Mercurial is still GPL v2, which is at least better than GPL v3? Finally my biggest argument (besides making contributing to the Project more inviting to new developers, especially recent CS/CE/EE graduates) would be that the bold challenge of migrating the entire codebase from CVS to Mercurial would present a once-in-a-lifetime opportunity to start over with a fresh, clean slate, once and for all tackle any issues that plagued working with CVS, and have the rare opportunity to reset and redefine new processes that capitalize on a quarter century of OpenBSD developers' working on maintaining a codebase that is second to none. It would be a monumental, fresh, clean start, albeit an immensely technically challenging one; but one I have no doubt OpenBSD developers could surmount. > Mercurial would require python in base and maybe someday it will require > also Rust. Wow, I have no counter-argument for that :/ Of all the arguments made for CVS over hg, for me this is the one sole argument I don't have an adequate response to. Thanks to everyone who shed light on this potentially fraught issue. I really appreciate eveyone who took the time to write thoughtful, insightful responses, based on technical considerations as opposed to dogma. I only wish the most salient points could be distilled and presented on an About page for the Project for future newbies like myself who are newly coming to OpenBSD without the quarter century of past context and its concomitant biases and are just initially struck by seeing a major contemporary project still using CVS. Thanks so much again! Austin “If you want to change the future, start living as if you’re already there.” —Lynn Conway