使用svndumpfilter包含多个文件夹

时间:2015-01-30 15:14:02

标签: svn version-control

您好我在服务器上创建了一个名为allProj的存储库。 allProj结构如下:

allProj

  • 项目
    • 了projectA
    • 项目B
    • 项目C
    • projectD
    • projectE

现在我想创建另一个存储库reqProj,其中包含来自'allProj'的特定项目 预期的'reqProj'结构是:

reqProj

  • 项目B
  • projectD
  • projectE

P.S:我想创建具有所有访问控制和历史记录的'allProj'。

我在这个主题上搜索了很多但是我找不到任何解决方案。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

了解SVN外部,如果您希望共享对象具有单点历史记录,或者在物理复制子树的情况下svnadmin dump + svndumpfilter + svnadmin load

由于搜索速度最快,我发现:

并且,如果您遇到错误的困难时期"缺少节点"在普通的svndumpfilter命令中

svndumpfilter include Projects/projectB Projects/projectD Projects/projectE > filtereddump.dmp

你必须拥有,理解和使用" Ultima ratio regum":Svndumpsanitizer

答案 1 :(得分:2)

请记住,自2010年6月以来我没有使用Subversion(当我写that answer时),但是从内存中,以下内容将为您提供allProj的{​​{1}}的克隆副本{ {1}}。

必须在托管Subversion存储库的服务器上执行以下步骤。

它假定在托管Subversion存储库的计算机上,存储库存在于X:\ Repositories中,而Subversion服务器的URL为http://localhost:8080,并且该存储库位于工作文件夹中。

第1步

  • reqProj
  • svnadmin create X:\Repositories\reqProj
  • svnadmin dump X:\Repositories\allProj > allProj.dmp
  • svnadmin load X:\Repositories\reqProj < allproj.dmp

我会使用svn checkout http://localhost:8080/svn/reqProj reqProj中提供的Repository Browser来执行以下步骤。

第2步

接下来,删除不需要的项目文件夹,例如TortoiseSVNprojectA。最后,您可以将projectCprojectBprojectD移到顶层,也可以删除projectE文件夹。

你最终会得到一些无关的历史(描述删除和文件夹移动),但是这没关系,我想? :)

我希望这可以帮助你。