[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Mirroring public CVS repository as SVN

From: Michael Haggerty <mhagger_at_alum.mit.edu>
Date: Tue, 24 Jun 2008 13:30:15 +0200

Dave Lawrence wrote:
> I have a script (attached) that mirrors a public CVS repository locally
> as a Subversion repository. Each night it updates the local CVS copy
> using rsync, then converts it with cvs2svn. cvs2svn doesn't seem to
> have an "incremental" feature, so the previous conversion is deleted and
> a new one created from scratch.
>
> The problem is that each time, the UUID changes, so a working copy
> checked out the previous day will no longer talk to the repository.
>
> Possibly I shouldn't be using a working copy in this scenareo (after all
> it's a read-only mirror), I can still take advantage of "export" and
> "merge".
>
> Anyone got any better thoughts on how to do this?

This is doomed to failure.

If you use cvs2svn on one day, creating SVN revisions r1 ... rM, then
run it again on a later day, creating SVN revisions r1 ... rN, there is
no guarantee that revisions r1 ... rM from the second conversion are the
same as those from the first conversion. (Indeed, it is not even
guaranteed that N >= M.) Lots of things can happen in a CVS repository
that CVS does not even record, and cvs2svn uses lots of heuristics to
infer unrecorded aspects of the CVS history. These heuristics can give
quite different outputs from only slightly differing inputs. Therefore,
the problem is not that the repositories' UUIDs are different, but
rather that the repositories themselves have different contents and are
really incompatible with each other.

There is, AFAIK, no tool that can do incremental conversions from CVS to
any other VCS in a robust and reliable way. Some tools attempt to
misuse cvsps to support incremental conversions, but such tools are IMHO
neither robust nor reliable.

Adding to cvs2svn the ability to do incremental conversions is very big
task that nobody has yet attempted.

Michael

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: users-help_at_subversion.tigris.org
Received on 2008-06-24 13:30:52 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.