Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS (was: GCC 10 available for testing etc. in -current.)



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



Home | Main Index | Thread Index | Old Index