如何迁移 SVN 存储库的一部分?

如何迁移 SVN 存储库的一部分?

如何迁移部分SVN 存储库迁移到新存储库?

要迁移完全的要将 SVN 存储库迁移到新存储库,首先必须转储旧存储库:

svnadmin dump /path/to/repository > repository-name.dmp

然后使用 将其加载到新的中svnadmin load

但我不确定如何迁移一部分。我是否仍需要转储整个内容?我是否需要 grep 查找我想要的部分?

为了转储myproject,我尝试了这个,但是没有用:

svnadmin dump /path/to/repository/myproject

有任何想法吗?

答案1

如果您想要提取存储库的一部分,即某个特定的子目录。您首先需要转储整个存储库,运行 svndumpfilter 以包含该目录,最后将内容加载到干净的存储库中。

假设你想移动目录 Calc,你可以这样做:

svnadmin dump repos > dumpfile
cat dumpfile | svndumpfilter include Calc > dumpfile-Calc

然后要正确加载 Calc 目录,您可以执行以下操作:

svnadmin create newrepos
svnadmin load Calc < dumpfile-Calc

这是从文档中摘取的,并稍作修改:http://svnbook.red-bean.com/en/1.0/ch05s03.html

答案2

当我想这样做时,我只是做了一个svnadmin dump和一个svnadmin load,就像你做的一样,然后我删除了 repo 中的所有其他内容。

该仓库只有 3GB 大小,所以不是什么大问题,而且从安全性角度来说,它并不是那么好,因为你显然可以通过回滚来撤消删除,但它实现了同样的效果,因为我找不到一种方法来做到这一点,同时保留修订历史。

相关内容