1

我有一个大型存储库,我想删除最旧的 6,000 个修订版。如果我也可以在中间删除不需要的修订组,那就太好了。

我已经想出了如何消除不需要的文件和分支,但我仍然留下了很多不需要的修订。

谢谢

4

1 回答 1

1

您需要使用svnadmin 转储命令,您可以从任意修订创建转储文件,然后过滤它以进入/排除某些路径。语法是:

svnadmin dump REPOS_PATH [-r LOWER[:UPPER]] [--incremental]

一个例子:你想从你的存储库中排除修订版 10-99:

svnadmin dump REPOS_PATH -r 0:9  > my_dump_file.dmp
svnadmin dump REPOS_PATH -r 100:HEAD  > my_dump_file.dmp --incremental

有一些问题:

  • 在我的示例中,您在 rev 10-99 中添加的 rev 100 之后的文件更改将创建一条错误消息,您需要在之前从 repo 中删除它们

  • 删除以后用作复制源的文件也会导致转储文件出错。

这两个限制你大多可以规避,但它需要更多的转储/过滤/加载周期迭代,因此需要更多时间。何时处理这些边界情况取决于您。

使用 svnbook 读取svnadmin dumpsvndumpfilter的详细信息

于 2012-09-30T12:55:37.480 回答