2012-06-25 19 views
3

我已经使用了相当多的这个问题,但没有找到我需要的东西。如何提取从SVN存储库扩展树干的分支机构到具有历史记录的新存储库

我有一个仓库,看起来像这样

/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”下的所有东西(下次我将以这种方式工作),但如果分支是来自另一个分支的副本,那么有时会重命名,删除,记录等...我没有看到它正常工作。

有没有工具或什么可以帮助我在这里完成工作?

感谢

+2

基于路径的授权功能(在服务器端)应该在这里帮助,我想 - 你是否尝试过为'svnsync'设置一个resticted帐户? – sendmoreinfo

+0

@sendmoreinfo这是一个非常好的主意,它应该起作用。我问这个问题已经很长时间了,这个“提取”现在已经推迟了。如果我得到一些空闲时间,我会尝试,但会让你更新 –

+0

@sendmoreinfo它的工作!使用基于路径的授权来限制该用户的访问只是一种痛苦。更多信息:http://stackoverflow.com/questions/3504851/remove-specific-files-from-revision-history/13720677#13720677 –

回答

1

路径为基础的授权功能(服务器端)应有助于在这里 - 你试图建立一个只供账户svnsync

+0

是的,这是做到这一点的方法。 THanks @sendmoreinfo –

相关问题