Re: Symbol conversion error

Michael Haggerty <[email protected]> Tue, 17 Jul 2012 16:38:04 +0200
Newsgroups gmane.comp.version-control.subversion.cvs2svn.user
Message-ID <[email protected]>
On 07/17/2012 12:20 PM, James Migue wrote:
> I am having trouble using cvs2svn. I have multiple CVS repositories that
> I wish to amalgamate into one, I am led to believe that this is
> achievable using an options file with the pertinent configuration
> reproduced below (the rest is standard):
>
> run_options.add_project(
>    '/data/altroot/Project1',
>    trunk_path='NewRepo/trunk',
>    branches_path='NewRepo/branches',
>    tags_path='NewRepo/tags'
> )
>
> run_options.add_project(
>    '/data/altroot/Project2',
>    trunk_path='NewRepo/trunk',
>    branches_path='NewRepo/branches',
>    tags_path='NewRepo/tags'
> )
>
> run_options.add_project(
>    '/data/altroot/Project3',
>    trunk_path='NewRepo/trunk',
>    branches_path='NewRepo/branches',
>    tags_path='NewRepo/tags'
> )

I don't understand why the above config works.  cvs2svn should complain 
that the projects' trunk paths are not disjoint because they are all 
equal to "NewRepo/trunk".  Same for branches and tags.

If you want the CVS repos to share trunk/tags/branches, then (as far as 
Subversion is concerned) they are a single project.  The way to convert 
them as a single project is to rearrange the CVS repositories *before* 
the conversion, like

     mkdir fake-top-level-project
     mv /data/altroot/Project* fake-top-level-project

Then have only one add_project() call:

     run_options.add_project(
         'fake-top-level-project',
         trunk_path='NewRepo/trunk',
         branches_path='NewRepo/branches',
         tags_path='NewRepo/tags'
         )

> My problem is that when I run csv2svn I receive the following error
> (there are numerous of these, I have reproduced just one):
>
> ERROR: Problems determining how symbols should be converted:
> It is not clear how the following symbols should be converted.
> Use --symbol-hints, --force-tag, --force-branch, --exclude, and/or
> --symbol-default to resolve the ambiguity.
>
> 'TAG_21_4_0' is a tag in 305 files, a branch in 0 files, a trivial
> import in 0 files, a pure import in 0 files, and has commits in 0 files

This shouldn't be a problem.  It is unambiguously a tag.

I suppose that you have forgotten to include the 
global_symbol_strategy_rules in your call to add_project() (or perhaps 
you have commented out some important rules in 
global_symbol_strategy_rules).  It is important to note that 
cvs2svn-example.options includes lots of content that *must be* included 
in your own options file.  Don't comment things out without a reason. 
Also make sure that you base your options file on the 
cvs2svn-example.options file that came with the version of cvs2svn that 
you are using.

If you need more help, please include your whole options file so that we 
don't have to guess about the missing content.

Michael

-- 
Michael Haggerty
[email protected]
http://softwareswirl.blogspot.com/

------------------------------------------------------
http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=1670&dsMessageId=2991269

To unsubscribe from this discussion, e-mail: [[email protected]].