You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Peter Wemm <pe...@wemm.org> on 2008/01/11 22:34:49 UTC

Can anybody point me to a *live* svn -> cvs exporter?

I'm trying to organize a switch from a cvs repository to svn, but we
have the problem that we have a considerable infrastructure built
around cvs.  Realistically, we can never be rid of it.  So, besides
converting our 15 years of cvs history to svn, a prerequisite is to be
able to continuously export svn changes back to the cvs tree and make
it "look real".

We did something like this for using perforce.  We have a process that
polls the p4 server for changes, then extracts them one at a time when
it finds them and commit them to the cvs tree.  (We do this at work
too, where its been going happily for 7 years now.  We still cut
releases from the replicated cvs tree, not perforce)

I've seen some other projects do this when switching from cvs to svn.
So far I haven't been able to find the people at those projects who
know how it was done.

If anybody has suggestions of where I could look, it would be
appreciated.  I'm quite ready to write our own, but it would be silly
if there was a good solution "out there" that I haven't found yet.

Things I need:  (either find a tool or modify one, or write my own)
export trunk to cvs HEAD.
export certain branches to certain cvs branches (a structured naming convention)
be able to deal with branches of branches in cvs.
If possible, somehow be able to magically deal with certain tags. (eg:
release tags)

The toughest one is the tags problem.  We may just punt and do it by
hand for now - have the release engineers create both svn and cvs tags
at the same time.  It would be nice if they didn't have to though.

We do *not* need to maintain the vendor branches in cvs.

I've found a bunch of one-time copy tools, or things that are so
heavy-weight that they're impractical.  Or live p4->cvs converter is a
hundred lines of perl, for example - but it is admittedly a hack,
somewhat fragile, and only does trunk/head.  I can hack that into
tracking svn if necessary, but I'm hoping I can find something
cleaner.

Any suggestions or pointers would be greatly appreciated.  Even "don't
use tool XXX" tips!
-- 
Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Can anybody point me to a *live* svn -> cvs exporter?

Posted by Stefan Sperling <st...@elego.de>.
On Sat, Jan 12, 2008 at 04:07:16AM -0800, Peter Wemm wrote:
> Our hell-hole of a repository had so much broken stuff accumulating
> over the last 15 years that it became one of the benchmarks that
> people used to 'torture-test' their cvs -> XYZ converters.  It had
> examples of just about everything that was possible to be wrong.
> 
> I finally got around to fixing most of the worst offences in our
> repository.. thus depriving the SCM community of one of its harshest
> torture test suites. :)

Could this by any chance be the FreeBSD CVS repository (given the
@freebsd.org address in your sig)? If so what did you do to make it
convert successfully?

I've been trying to find something other than perforce that allows
me to hack FreeBSD sources without having CVS in the way since CVS is
seriously preventing me from getting any work done... so far any conversion
tool I've tried chocked on the FreeBSD repo. I've tried various git,
mercurial and monotone converters. To be honest I haven't tried cvs2svn
yet because as far as I understand it does not support incremental imports.

A tool that does not import the entire history but starts at a certain
point in time and goes on from there would be sufficient for my use case.

-- 
stefan
http://stsp.name                                         PGP Key: 0xF59D25F0

Re: Can anybody point me to a *live* svn -> cvs exporter?

Posted by Peter Wemm <pe...@wemm.org>.
On Jan 11, 2008 4:54 PM, Peter Wemm <pe...@wemm.org> wrote:
> ...
> I'm very familiar with cvs2svn and talk with the developers regularly.
>  Our repository broke cvs2svn badly.


I just wanted to clarify..  cvs2svn isn't broken.

Our hell-hole of a repository had so much broken stuff accumulating
over the last 15 years that it became one of the benchmarks that
people used to 'torture-test' their cvs -> XYZ converters.  It had
examples of just about everything that was possible to be wrong.

I finally got around to fixing most of the worst offences in our
repository.. thus depriving the SCM community of one of its harshest
torture test suites. :)

The cvs2svn folks have been very helpful!  I have nothing but
complements for them!

-- 
Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Can anybody point me to a *live* svn -> cvs exporter?

Posted by Peter Wemm <pe...@wemm.org>.
On Jan 11, 2008 4:19 PM, Ryan Schmidt <su...@ryandesign.com> wrote:
>
> On Jan 11, 2008, at 16:34, Peter Wemm wrote:
>
> > I'm trying to organize a switch from a cvs repository to svn, but we
> > have the problem that we have a considerable infrastructure built
> > around cvs.  Realistically, we can never be rid of it.  So, besides
> > converting our 15 years of cvs history to svn, a prerequisite is to be
> > able to continuously export svn changes back to the cvs tree and make
> > it "look real".
> >
> > We did something like this for using perforce.  We have a process that
> > polls the p4 server for changes, then extracts them one at a time when
> > it finds them and commit them to the cvs tree.  (We do this at work
> > too, where its been going happily for 7 years now.  We still cut
> > releases from the replicated cvs tree, not perforce)
>
> [snip]
>
> > Any suggestions or pointers would be greatly appreciated.  Even "don't
> > use tool XXX" tips!
>
> I would suggest: don't do this at all. Use cvs2svn to convert your
> existing CVS repository to a Subversion repository. Then use the
> Subversion repository only. cvs2svn is a well-tested and often-used
> script so I hope it will work for you. If you have questions about
> cvs2svn, it has its own mailing list.

I'm very familiar with cvs2svn and talk with the developers regularly.
 Our repository broke cvs2svn badly.

Besides, I think you missed the point.  We can't kill the cvs tree as
it is a key part of our distribution infrastructure.  I wasn't talking
about having parallel development going on in both cvs and svn.
cvs2svn would convert everything over on a one-time basis, then all
development would happen exclusively in svn.  A bot would export the
changes to the legacy cvs tree, just like we do with our perforce
trees.

We can't just kill access via anoncvs, cvsup and CTM because it is convenient.
-- 
Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Can anybody point me to a *live* svn -> cvs exporter?

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Jan 11, 2008, at 16:34, Peter Wemm wrote:

> I'm trying to organize a switch from a cvs repository to svn, but we
> have the problem that we have a considerable infrastructure built
> around cvs.  Realistically, we can never be rid of it.  So, besides
> converting our 15 years of cvs history to svn, a prerequisite is to be
> able to continuously export svn changes back to the cvs tree and make
> it "look real".
>
> We did something like this for using perforce.  We have a process that
> polls the p4 server for changes, then extracts them one at a time when
> it finds them and commit them to the cvs tree.  (We do this at work
> too, where its been going happily for 7 years now.  We still cut
> releases from the replicated cvs tree, not perforce)

[snip]

> Any suggestions or pointers would be greatly appreciated.  Even "don't
> use tool XXX" tips!

I would suggest: don't do this at all. Use cvs2svn to convert your  
existing CVS repository to a Subversion repository. Then use the  
Subversion repository only. cvs2svn is a well-tested and often-used  
script so I hope it will work for you. If you have questions about  
cvs2svn, it has its own mailing list.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Can anybody point me to a *live* svn -> cvs exporter?

Posted by John Peacock <jo...@havurah-software.org>.
Peter Wemm wrote:
> converting our 15 years of cvs history to svn, a prerequisite is to be
> able to continuously export svn changes back to the cvs tree and make
> it "look real".

You may want to consider looking at SVN::Notify::Mirror, which makes it easy to
create very customizable post-commit hooks.  I wrote it initially to keep
multiple web servers in automatic sync with changes in a repository, including
special support for tagging.  It probably wouldn't be that hard to write a new
backend (like the current ::SSH and ::Rsync) which instead would apply the new
changes to a local CVS checkout and commit them.

John

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org