2009-05-25 70 views
1

我正在使用cvs2svn将大型多项目CVS存储库转换为Subversion。它的工作非常好,但有一些CVS项目真的应该成为其他项目的分支机构。使用CVS时需要将项目主干转换为分支

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

我现在看到的唯一选择是在转换完成后从Subversion中删除目录,但是我想知道是否有人知道这种方式可以在转换过程中完成吗?我也看过符号提示文件,但有270个项目通过索引号指定项目看起来太困难了!

非常感谢, 大卫

回答

2

假设你的“ShouldBeBranch”项目本身有分支和标签。你想要那些最终?

如果你只想要“ShouldBeBranch”项目的树干被列入转换:

  • 排除所有其他符号从“ShouldBeBranch”项目
  • 设置其trunk_path的路径内其他项目
  • 设置branches_path和tags_path为无选项文件(这可以防止它们被创造)

你的选择的部分文件广告DS的“ShouldBeBranch”项目将因此包含这样的台词:

run_options.add_project(
    # ... 
    trunk_path='OtherProject/branches/ShouldBeBranch', 
    branches_path=None, 
    tags_path=None, 
    # ... 
    symbol_strategy_rules=[ 
     ExcludeRegexpStrategyRule(r'.*'), 
     ], 
    ) 
+0

ShouldBeBranch却没有任何分支机构或自己的标签,所以我觉得“无”的解决方案就可以了...我d在任何地方都看不到! 谢谢,大卫 – 2009-05-26 14:35:23

1

在做的修正导入好像在我身上最好的事情后。如果您将svn项目的project \ trunk移动到branch \ something,Subversion将只跟踪历史记录。

这个blog post描述了一种使用转储/加载循环重命名路径的方法。这样就会改变历史,这样当你回顾文件的历史时,它们似乎总是在分支内部。

如果你要回到旧版本,你会期望它是在项目\干线。因此,我认为尝试改变历史并不是一件好事。

相关问题