1

我正在使用 cvs2svn 将一个大型的多项目 CVS 存储库转换为 Subversion。它工作得非常好,但是有一些 CVS 项目确实应该是其他项目的分支。

使用选项文件,我可以指定项目“ShouldBeBranch”的主干应该放在“/OtherProject/branches/ShouldBeBranch”中,但我找不到避免为标签和分支创建 Subversion 目录的方法ShouldBeBranch 项目(它是空的,但仍然创建)。

目前我能看到的唯一选择是在转换完成后从 Subversion 中删除目录,但我想知道是否有人知道可以在转换过程中完成此操作的方法?我还查看了符号提示文件,但是有 270 个项目通过索引号指定项目看起来太难了!

非常感谢,大卫

4

2 回答 2

2

大概您的“ShouldBeBranch”项目本身具有分支和标签。你希望那些结局在哪里?

如果您只希望将“ShouldBeBranch”项目的主干包含在转换中:

  • 从“ShouldBeBranch”项目中排除所有其他符号
  • 将其 trunk_path 设置为另一个项目中的路径
  • 在您的选项文件中将branchs_path 和tags_path 设置为None(这会阻止它们被创建)

因此,添加“ShouldBeBranch”项目的选项文件部分将包含如下行:

run_options.add_project(
    # ...
    trunk_path='OtherProject/branches/ShouldBeBranch',
    branches_path=None,
    tags_path=None,
    # ...
    symbol_strategy_rules=[
        ExcludeRegexpStrategyRule(r'.*'),
        ],
    )
于 2009-05-26T07:15:47.240 回答
1

在导入后进行修复对我来说似乎是最好的事情。如果您将项目的项目\主干 svn 移动到分支\某处,Subversion 将只跟踪历史记录。

这篇博文描述了一种使用转储/加载循环重命名路径的方法。这种方式会改变历史,因此当您回顾文件的历史时,它们似乎一直在分支\某物内。

如果您要回到旧版本,您会希望它位于 project\trunk 中。因此,我认为试图改变历史并不是一件好事。

于 2009-05-25T22:10:09.480 回答