At Mon, 19 Apr 2021 11:56:59 +0200, Reinoud Zandijk <reinoud%NetBSD.org@localhost> wrote: Subject: Re: GCC 10 available for testing etc. in -current. > > Same for me; I've never had trouble with CVS trees and they always just work > and update fine. > > Hg on the otherhand.... I had to delete and recheckout my hg tree *again*; i > had interrupted hg during a merge and oh boy; it was completely shot and > thought i had tons of local changes that all conflicted; a whopping 500+ files > or so, thus resorting to just nuking it and rechecking it out. This never > happened to my CVS tree. > > So, no, hg is not mature enough yet to switch over to and don't get me started > on git! I don't think all of those problems can be blamed on Hg (or Git). A very big part of the problem is what Joerg said: "when someone messes up history, that's a non-linear update." I.e. the conversion from CVS to Hg and/or Git sometimes has to rewrite history to undo a mess-up and clean-up in the CVS repo, and those are things that really mess up Git and Hg users. And NetBSD developers seem to have a penchant for messing up/in the repository on a regular basis. There were two such events in the past week or two alone. This very update to GCC 10 was involved in one of them. These same shenanigans also affect CVS, but usually in less ugly ways, In both cases it's often a matter of timing.... If you do your CVS update in between one of these "messes" being made and being cleaned then you'll encounter some problems, but if not then you're often none the wiser to what happened. For the same reason different people will have different experiences with the Hg and Git clones because they do their updates at different times. If you don't clone or fetch history that then has to be rewritten then you won't know that history was rewritten. The real solution of course is to stop and _prevent_ history from being rewritten, ever. It doesn't matter if this is in CVS, Git, Hg, Fossil, or something else. It's just easier to prevent in Git, and Hg, etc. Personally I've been using rsync to fetch the whole CVS repository daily for years now, and then I update local checkouts, some automatically and some by hand. It's very efficient, and it gives me a local copy of all the repository history. It's not quite as nice as a git clone, since I can't reliably and efficiently and easily keep my own local branches and do local commits (e.g. in the way you can do very easily and efficiently with Git), but it is still very much better than any other current alternative, including the current Hg and Git and Fossil conversions. -- Greg A. Woods <gwoods%acm.org@localhost> Kelowna, BC +1 250 762-7675 RoboHack <woods%robohack.ca@localhost> Planix, Inc. <woods%planix.com@localhost> Avoncote Farms <woods%avoncote.ca@localhost>
Attachment:
pgpIVaV5KkR2e.pgp
Description: OpenPGP Digital Signature