如何删除旧的SVN修订版

Wes*_*Wes 6 svn disk

我们的SVN存储库接近0.5 GB.我们的生产系统中的代码数量远远不够.

是否可以删除旧版本.我尝试svn dump了一个开始修订号,但无济于事.我无法将其导入干净的SVN存储库.

我们不需要超过一年的历史.

有任何想法吗?

Pet*_*ker 16

您可以删除或更好地"缩小"SVN存储库的历史记录.假设您有1000个修订版,并且您希望缩小到只有r950-r10​​00的修订版.您可以执行以下操作:

svnadmin dump /path/to/current/repo -r950:1000 > small_svn.dump
svnadmin create /path/to/new/repo
svnadmin load /path/to/new/repo < small_svn.dump
Run Code Online (Sandbox Code Playgroud)

但是,有两点需要注意:

第一:所有的标签和分支都将作为独立副本结束,因此将占用比以前更多的空间(这可能会在更大的存储库中结束,您必须尝试) - 您可以使用svndumpfilter删除标签和分支,但是,比你需要旧的存储库来获取这些标签/分支的信息.

第二:如果您的分支机构停留在新的存储库中,则所有mergeinfo将显示错误的修订版本,因为您的新存储库再次以版本0开始,并且所有分支在版本历史记录中都已消失(由于第1页)

一个更好的解决方案:

  • 找到负责存储库增长的修订版本(在存储库数据存储中搜索大文件,通常位于:/path/to/repo/db/revs/[0...X]).
  • 检查这些修订的日志历史记录并找到负责的文件.
  • 如果您不需要这些文件,请通过svndumpfilter删除它们.
  • 教您的用户如何避免提交不必要的大文件.

否则,您将不得不在几周内缩小存储库!