如何从Subversion中删除大量修订

时间:2012-09-30 12:36:06

标签: svn

我有大型存储库,我想删除最早的6,000个修订版。如果我还可以在中间删除不需要的修订组,那将是很棒的。

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

由于

1 个答案:

答案 0 :(得分:1)

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

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中添加的100之后的rev中的文件更改将创建一条错误消息,您需要在

    之前将其从repo 中删除
  • 删除稍后用作复制源的文件也会导致转储文件出错。

这两种限制都可以解决,但需要更多的转储/过滤/加载周期,以及更多的时间。当您的时间到了处理这些边框时,由您决定。

使用svnbook阅读svnadmin dumpsvndumpfilter

的详细信息