您的位置:首页 > 其它

Visual SVN 上传失败,Repositories变大问题.( SVN 可以紧缩吗? pack)

2017-07-26 15:02 543 查看
上传了一个非常非常大的文件(离线地图),上传时间非常长,上传中途被终止. 根本没有必要上传这个文件. SVN使用的一个原则: SVN不是FTP, 不宜用来存放不需要版本控制的文件(例如 开发工具软件等). SVN最擅长是用于文本格式的源代码的版本管理.

看SVN日志, 没有这次上传的日志,SVN中也没有看到上传的文件. 但当备份SVN时, 发现数据库的体积增加了许多, 备份时间大幅度增加了. 用dump导出这个Repositories. 再load 导入一个新建的 Repositories中, 删除原来的Repositories, 改名新创建的 Repositories 成原来的名字, 整个数据库的大小, 缩小了许多. 似乎数据库被紧缩了(当然 SVN 原本就有一个pack命令, 但没敢在生产库上试用).
但是一个代价是,原本仓库的权限设置数据,全部丢失了. 需要对新仓库重新设置用户/组的访问权限.

用到的命令:

导出数据:

svnadmin dump E:\Repositories\DS6000 > DS6000.dump

如果需要过滤掉无用的数据:

例如在导出数据 DS6000 .dump 中, 删除Software\Dispatcher目录及其之下的所有文件和目录 的例子

svndumpfilter exclude Software\Dispatcher <DS6000.dump> filtered-DS6000.dump

导入数据:

svnadmin load E:\Repositories\DS6000new < DS6000.dump

或者

svnadmin load E:\Repositories\DS6000new < filtered-DS6000.dump

删除原来的Repositories和改名新的Repositories成原来的名字, 这些操作可以在VisualSVN中完成, 也可以在操作系统中完成( 最好是在操作系统中完成删除和改名Repositories的工作,VisualSVN删除操作可能非常非常的慢).

重新设置用户/组的访问权限.

SVN本身提供了两个命令:svnadmin pack 和 svnadmin recover . 但是试用的结果, 效果一般般.

备忘记录一下.

PS 免费的SVN管理工具 Commit Monitor 还不错.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SVN