下午好,
在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'
],
出现同样的错误:
-----传递16(OutputPass)-----启动Subversion存储库。启动Subversion r1 / 635启动Subversion r2 / 635启动 Subversion r3 / 635错误:svnadmin失败,输出如下 加载转储文件时:svnadmin:E160020:文件已存在: filesystem'/ var / svn-test / db',事务'48 -1c',路径'sw'
我对如何解决这个问题很感兴趣。
注意: 我的初始测试是使用命令行参数,结果是分别在svnrepos / trunk,svnrepos / branches和svnrepos / tags中创建了trunk,branches和tags。正如我之前所说,我希望这些是在svnrepos / sw / package
下提前致谢 丹尼尔
答案 0 :(得分: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,
)
请注意,trunk,tags和branches的路径还包含对 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 将生成的转储文件加载到svn
svnadmin load --parent-dir sw /var/svn-test < packageDump