我正在使用超过3年的SVN存储库,包含超过6,100次提交,并且大小超过1.5 GB。在将其移到新服务器之前,我想减小SVN存储库的大小(我不是在谈论完整的SVN导出的大小-我的意思是完整的存储库,因为它将存在于服务器上)。
当前的存储库包含我们所有软件项目的源代码,但也包含相对较大的无意义的二进制文件,例如:
大量的第三方工具的完整安装程序。
.jpg和.png文件(这是未修改的PSD导出文件,位于同一文件夹中)。
Bin和Obj文件夹(下一次提交将被“ svn忽略”)。
重新共享目录。
自添加这些大文件以来,其中许多文件已被“ SVN删除”,这进一步导致了识别最大罪犯的问题。
我要:
创建一个仅包含所有软件项目代码的新SVN信息库-复制的文件保持旧信息库中的SVN历史记录非常重要。
从现有存储库中删除大型二进制提交和文件。
这些都有可能吗?
最佳答案
您将必须使用svnadmin dump获取当前存储库的转储文件,并可能使用svndumpfilter处理转储文件。只要您小心,还可以手动修改转储文件。
这可能不会是一件容易快捷的工作,但是可以做到。我做了类似的事情,只是对一个较小的存储库。我有一个带有150个修订版本的仓库,耗时约600MB。
从当前存储库进行转储,进行必要的更改,然后尝试将修改后的转储文件加载到新存储库中。然后检查新的存储库,以确保一切仍然有意义(历史记录仍然正确,路径中没有奇怪的变化,...)。
关于svn - 如何识别和潜在地删除SVN存储库中的大型二进制提交?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2176803/