如何从SVN存储库中提取扩展树干的分支到具有历史记录的新存储库

时间:2012-06-25 13:22:35

标签: svn branch svnsync svndumpfilter svndump

我已经搜索了相当多的问题,但没找到我需要的东西。

我有一个看起来像这样的存储库

/Project_A
  +- trunk
  +- branches
      +- Version_1
      +- Version_2
      +- 1st_Custom_version_for_customer_A
      +- 2nd_Custom_version_for_customer_A
/Project_B
  +- trunk
  +- branches
      +- Version_1
      +- Version_2
      +- 1st_Custom_version_for_customer_A
      +- 2nd_Custom_version_for_customer_A

分支机构是其中继线的后代。例如,对于Project_A

Trunk ------------------------------------------------------>
Version_1   \--------->                    \
Version_2                  \--------->      \
1st_Custom_version_for_customer_A            \--------------->

自定义版本现在拥有自己的生命,并且不再从主干获得任何更新(许多差异)。

我只需要在新存储库中提取与客户相关的修订。即:/ Project_A / trunk,直到创建1st_Custom_version_for_customer_A的那一刻。然后是/ Project_A / branches / 1st_Custom_version_for_customer_A和/ Project_A / branches / 2nd_Custom_version_for_customer_A。然后对于项目B也是如此。所有都在同一个存储库中。

我尝试过svnsync,但只能提取/ Project_A / branches / 2nd_Custom_version_for_customer_A,即使历史记录很好,我仍然会看到其他分支的所有提交消息(在我的情况下这是一个问题)。

至于svndumpfilter,如果我从一开始就拥有“/ Customer_A”下的所有东西(下次我将以这种方式工作),那将是完美的,但是当分支是来自另一个分支的副本时,则有时会重命名,删除,recrated等...我认为它没有正常工作。

是否有工具或其他东西可以帮助我完成这项工作?

由于

1 个答案:

答案 0 :(得分:1)

基于路径的授权功能(在服务器端)应该对此有所帮助 - 您是否尝试过设置svnsync的已取消帐户?