我在名为"project"的Subversion存储库中有一个"docs"文件夹.我得出的结论是它应该保存在一个名为"project_docs"的独立Subversion存储库中.
我想将"docs"文件夹(及其所有修订版)移动到"project_docs"存储库.有没有办法做到这一点?
如果您已访问存储库本身(而不是工作副本),则应该能够转储当前存储库,将其过滤为仅包含有关docs文件夹的信息,并将其加载到其他存储库中.
会是这样的:
svnadmin dump /svn/old_repos > ./repository.dump svndumpfilter include path/to/docs --drop-empty-revs --renumber-revs --preserve-revprops < ./repository.dump > ./docs_only.dump svnadmin load /svn/new_repos < ./docs_only.dump
如果不访问存储库,则无法维护修订历史记录,您必须解决将文件复制到新存储库并提交的问题.
svndumpfilter有一个严重的缺陷 - 如果文件或路径从您过滤的路径复制到您正在过滤的路径,svndumpfilter将无法填写历史记录,作业将失败.
如果遇到此问题,可以使用svndumpfilter2.
这在SVN文档中讨论.查看存储库维护部分svndumpfilter
......它具体描述了如何将项目从中央存储库转储出来并将它们移动到新的独立存储库中.