备份SVN存储库中所需的文件

备份SVN存储库中所需的文件,svn,backup,directory,Svn,Backup,Directory,我需要备份我的SVN存储库的一个文件夹。为此,我尝试使用svndump和svndumpfilter命令,但没有任何用处 任何人都可以用一个例子来解释如何做到这一点 更新: 我有一个存储库,里面有一个文件夹,上面写着“Test”。除了这个“测试”,我的存储库中还有一些文件夹/项目。如果我想对我的存储库进行完整备份,它会消耗更多的内存(30 gb),因此我只想将包含历史记录的“测试”文件夹转移到另一个存储库,这样我就可以只对“测试”文件夹(新存储库)进行常规备份,因为它将占用更少的内存。(除了“测试

我需要备份我的SVN存储库的一个文件夹。为此,我尝试使用svndump和svndumpfilter命令,但没有任何用处

任何人都可以用一个例子来解释如何做到这一点

更新: 我有一个存储库,里面有一个文件夹,上面写着“Test”。除了这个“测试”,我的存储库中还有一些文件夹/项目。如果我想对我的存储库进行完整备份,它会消耗更多的内存(30 gb),因此我只想将包含历史记录的“测试”文件夹转移到另一个存储库,这样我就可以只对“测试”文件夹(新存储库)进行常规备份,因为它将占用更少的内存。(除了“测试”之外,我不需要定期备份其他文件夹)


如何做到这一点?

由于每次提交时SVN都会对整个树进行版本转换,因此如果您尝试仅备份源树的一部分,然后尝试恢复该备份,则可能会遇到问题

如果您想要的是文件本身当前状态的备份(实际上不需要完整的版本历史记录),请改用


如果您试图备份历史,那么我同意Rohith的回答。

根据您的后续行动,您想要做的是从单源repo生成两个新的存储库

SVN红皮书很好地解释了这一点:

简而言之,您从原始repo开始创建一个转储文件,然后使用svndumpfilter生成两个过滤后的转储文件(一个带有测试,一个没有)

现在,加载转储文件:

svnadmin load --ignore-uuid testrepo < testonly.dump
svnadmin load --ignore-uuid neworigin < no-test.dump

您需要我假设的历史记录吗?从技术上讲,可以使用
svndumpfilter
转储存储库的一部分,并单独使用,但这将非常奇怪。您可以保留历史记录,但该部分的所有新内容都无法返回到原始存储库。请确认你到底想用备份做什么,我很乐意举个例子,但Dav的答案很可能就是你的意思。我同意这是个坏主意,你所说的修订号是跨树完成的,因此只备份某些部分是个坏主意,因为如果没有手动干预/编辑,恢复几乎肯定不起作用。亲爱的Seth,是的,我对我的回复也做了同样的操作。当我使用svndumpfilter时,它会做一些事情,但在最后一次使用时,它不会创建任何已过滤的转储文件!!。无论如何,我会再试一次,让你知道,非常感谢你,默翰
svnadmin create testrepo
svnadmin create neworigin
svnadmin load --ignore-uuid testrepo < testonly.dump
svnadmin load --ignore-uuid neworigin < no-test.dump
svnadmin dump testrepo > testrepo-backup.dump