我需要备份我的SVN存储库的一个文件夹。为此,我尝试使用svndump和svndumpfilter命令,但都没有用。
谁能用一个例子来解释如何做到这一点。
更新:
我有一个存储库,其中我有一个文件夹,名为"Test“。除了这个“测试”之外,我的存储库中还有更多的文件夹/项目。如果我想要完全备份我的存储库,它消耗了更多的内存(30 gb),所以我想只将带有历史记录的"Test“文件夹转移到另一个存储库,这样我就可以只对"Test”文件夹(新存储库)进行常规备份,因为它占用的内存更少。(我不需要定期备份其他文件夹,但“Test”除外)
我该怎么做呢?
发布于 2009-11-06 20:47:56
如果您想要的是文件本身的当前状态的备份(实际上并不想要完整的版本历史),请使用svn export。
如果你试图备份历史,那么我同意Rohith的回答。
发布于 2009-11-06 20:39:57
由于SVN在每次提交时都会对整个树进行版本化,因此如果您尝试只备份源树的一部分,然后再尝试恢复该备份,则很可能会遇到麻烦。
发布于 2009-11-18 05:19:55
根据您的后续工作,您想要做的是从单源存储库生成两个新存储库。
SVN红皮书很好地解释了这一点:http://svnbook.red-bean.com/nightly/en/svn.reposadmin.maint.html#svn.reposadmin.maint.filtering
简而言之,您从一个原始存储库开始,创建一个转储文件,然后使用svndumpfilter生成两个过滤后的转储文件(一个有测试,一个没有)。
svnadmin dump origin > origin.dump
svndumpfilter include Test < origin.dump > testonly.dump
svndumpfilter exclude Test < origin.dump > no-test.dump如果您觉得很活泼,可以编辑两个过滤过的转储文件,以排除根节点创建语句(在文档链接中谈到)。
创建新的repos:
svnadmin create testrepo
svnadmin create neworigin现在,加载转储文件:
svnadmin load --ignore-uuid testrepo < testonly.dump
svnadmin load --ignore-uuid neworigin < no-test.dump现在,您有了两个新的代码库,因此您可以暂停原始代码库中的开发,并使用neworigin和testrepo代码库。在那里,您可以使用svnadmin dump仅为testrepo生成转储文件,并将该转储文件放入正常的备份过程中。
svnadmin dump testrepo > testrepo-backup.dumphttps://stackoverflow.com/questions/1687293
复制相似问题