0

下午好,

在 Linux 机器上使用 2.4.0-dev 版本,我正在尝试将 CVS 项目迁移到 SNV。我遇到了一些符号问题,我创建了一个基于符号信息的提示规则文件。

现在到我当前的错误。CVS 项目称为包。我想将它迁移到目录结构svnrepos/sw/package下的SVN。svnrepos/sw 已经存在(连同 svnrepos.

在我的选项文件(从 cvs2svn-example.options 创建)中,我使用

ctx.output_option = ExistingRepositoryOutputOption(
    r'/var/svn-test', # Path to repository
    #author_transforms=author_transforms,
    )
...
run_options.add_project(
    r'cvs/package',
    trunk_path='sw/package/trunk',
    branches_path='sw/package/branches',
    tags_path='sw/package/tags',
...

我也试过

run_options.add_project(
    r'cvs/package',
    trunk_path='trunk',
    branches_path='branches',
    tags_path='tags',
    initial_directories=[
        r'sw/package'
        ],

有同样的错误:

----- pass 16 (OutputPass) ----- 启动 Subversion Repository。正在启动 Subversion r1 / 635 正在启动 Subversion r2 / 635 正在启动 Subversion r3 / 635 错误:svnadmin 在加载转储文件时失败,输出如下:svnadmin:E160020:文件已存在:文件系统'/var/svn-test/db',事务' 48-1c',路径'sw'

我不知道如何解决这个问题。

注意:我最初的测试是使用命令行参数,结果树干、分支和标签分别在 svnrepos/trunk、svnrepos/branches 和 svnrepos/tags 中创建。正如我之前指出的,我希望这些位于 svnrepos/sw/package 下

提前感谢丹尼尔

4

1 回答 1

0

我解决了这个问题。基本上必须完成的迁移是两个步骤

1.使用 cvs2svn 生成转储文件。在选项文件中,我使用了以下内容

# Use this type of output option if you want the output of the
# conversion to be written to a SVN dumpfile instead of committing
# them into an actual repository.  The author_transforms option is as
# described above:
ctx.output_option = DumpfileOutputOption(
#    dumpfile_path=r'/path/to/cvs2svn-dump', # Name of dumpfile to create
    dumpfile_path='packageDump',
    #author_transforms=author_transforms,
    )

请注意,主干、标签和分支的路径还包括对package的引用。

run_options.add_project(
    r'cvs/package',
    trunk_path='package/trunk',
    branches_path='package/branches',
    tags_path='package/tags',

正如我在原始消息中提到的,存在一些符号问题,我创建了一个符号提示文件,其中 svn-path 指向我想要的目录。例如

0 tag_pk_1_0_0 tag package/tags/pk_1_0_0 .trunk.

2:使用svnadmin load将生成的dumpfile加载到svn上

svnadmin load --parent-dir sw /var/svn-test < packageDump
于 2013-09-18T17:55:29.640 回答