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

Re: First cvs2svn conversion, problem with "symbols"

From: Bo Berglund <bo.berglund_at_gmail.com>
Date: Fri, 08 Dec 2017 12:24:19 +0100

On Thu, 07 Dec 2017 21:44:08 +0100, Bo Berglund
<bo.berglund_at_gmail.com> wrote:

>Problem:
>I have taken one of our CVS repositories, which contains just 16
>projects, as a test case for the full conversion to come later.
>I used the options file approach so that I could use the automatic
>listing of these projects.
>What happens is that when I run the conversion after pass 1 (listing
>all the ,v files) this is displayed:
>
>Time for pass1 (CollectRevsPass): 4.491 seconds.
>----- pass 2 (CleanMetadataPass) -----
>Converting metadata to UTF8...
>Done
>Time for pass2 (CleanMetadataPass): 0.036 seconds.
>----- pass 3 (CollateSymbolsPass) -----
>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.
>
>I have no idea what I should do about this, the "symbols" are just
>tags on certain revisions in a number of files. Some tags might be
>regular tags and some branch tags.
>But that is normal in a CVS repository so what is it complaining about
>and what should I do about it?
>

My full options file is too big to be posted due to all the comments
(I copied the cvs2svn-example.options file as a starting point).
Is there some simple way to get rid of all lines starting with a
comment?

In any case this is what I have in the section regarding symbols
(manually removed commented lines):

global_symbol_strategy_rules = [
    ExcludeTrivialImportBranchRule(),
    ExcludeVendorBranchRule(),
    UnambiguousUsageRule(),
    BranchIfCommitsRule(),
    HeuristicStrategyRule(),
    HeuristicPreferredParentRule(),
    ]

And there are no entries in the projects listing function to set
specific symbol handling per project, so I assume the global setting
will be used:

for project in projects:
    run_options.add_project(
        cvs_repo_main_dir + '/' + project,
        trunk_path=(project + '/trunk'),
        branches_path=(project + '/branches'),
        tags_path=(project + '/tags'),
        )

When I run a conversion it stops with this message (the list has been
truncated since it contains more symbols but with the same content):

----- pass 3 (CollateSymbolsPass) -----
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.
    'EAGLE2-version1' is a tag in 13 files, a branch in 0 files, a
trivial import in 0 files, a pure import in 0 files, and has commits
in 0 files
    'start' is a tag in 13 files, a branch in 0 files, a trivial
import in 0 files, a pure import in 0 files, and has commits in 0
files
    'bosse' is a tag in 0 files, a branch in 13 files, a trivial
import in 13 files, a pure import in 13 files, and has commits in 13
files
    'CVSMailer_1-6-1-58_2016-11-24' is a tag in 125 files, a branch in
0 files, a trivial import in 0 files, a pure import in 0 files, and
has commits in 0 files

What am I missing? It seems like the symbol handling defined in the
options file is not used....
And the advice to set various command line options does not work since
they are discarded when one uses an option file in which these options
cannot be entered...

Seems like I am pretty close and yet not there.

-- 
Bo Berglund
Developer in Sweden
Received on 2017-12-08 12:24:35 CET

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