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

Re: cvs2svn: Change CVS Module Structure Before or After Conversion?

From: Michael Haggerty <mhagger_at_alum.mit.edu>
Date: Fri, 22 Aug 2008 22:04:14 +0200

[In the future, please post questions about cvs2svn to the
users_at_cvs2svn.tigris.org mailing list.]

Tom Browder wrote:
> However, the CVS repos I want to convert now does have intertwined
> modules. Example, we have top-level modules A, B, C, D, E. In the
> CVSROOT modules file we have:
>
> A A &C &D
> B B &E
>
> I want the svn repos to look like:
>
> A/C
> A/D
>
> B/E
>
> where A and B are separate svn repos and C, D, and E are just ordinary
> dependent directories under their parents.
>
> In other words, I want C, D, and E to no longer be independent
> modules. The question is, is it best to (1) make the change manually
> inside the CVS repos, or (2) to do it under svn later. I want to
> preserve history so my naive view is the I can manually change a few
> things around in the CVS repo (carefully, and on a copy of course), so
> option 1 is the better route.

Option 1 will give better results. Just make a copy of your repository,
move the directories around using OS commands, then run the conversion
on the copy.

> What will cvs2svn do with the module cross-reference if I take option 2?

I wouldn't recommend it, and am too lazy to figure out the hypothetical
results :-)

> To the best of my knowledge, modules C, D, and E have never been
> independently worked on outside the checkout of A or B. But to
> complicate the matter, there was a single branch taken on A long ago
> which has become the de facto main line of development with no sign of
> ever being merged back to the HEAD. After a successful conversion to
> svn, I plan to copy A's trunk to a new branch, and then copy the
> original branch to the trunk, thereby making it the main line of
> development

Sounds reasonable. It will of course leave records of the move in the
SVN repository.

Another possibility that should work in the trunk version of cvs2svn
would be to use a symbol-hints file to tell cvs2svn to put the trunk
branch to path "branches/old-trunk" and to put the pseudo trunk branch
to path "trunk". In this approach, the "trunk" branch will be created
at some time by being copied from "branches/old-trunk". This may have
never been tried before, so (1) it might not work at all (2) if it seems
to work, please verify the results before relying on them (3) let us
know how it turned out!

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-08-22 22:04:47 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.