svn提交失败提示“磁盘空间不足”时,问题可能出在客户端(如tortoisesvn安装盘c盘空间不足导致无法生成svndiff临时文件)、服务端(仓库所在分区满,尤其db/txn-protorevs目录写入失败)或临时缓存路径(如系统temp目录),需分端排查并针对性清理。

SVN提交失败提示“磁盘空间不足”,不能只盯着服务器看——问题可能出在客户端、服务端,甚至临时缓存路径。关键要分清是哪一端的磁盘满了,再针对性清理。
检查客户端磁盘空间(尤其是TortoiseSVN安装盘)
TortoiseSVN 在提交大文件(如 100MB 以上)时,会先在本地生成临时 diff 文件,默认使用安装目录所在盘(通常是 C 盘)的临时空间。即使你的工作副本在 D 盘,C 盘只剩几十 MB 也会直接报错:
- 错误示例:
Could not write svndiff to temp file: 磁盘空间不足 - 确认方式:打开 TortoiseSVN 安装路径(如
C:\Program Files\TortoiseSVN),查看所在分区剩余空间 - 解决方法:清理 C 盘临时文件、回收站、系统日志、旧 Windows 更新等;或手动指定 SVN 临时目录(需修改注册表或环境变量,不推荐新手操作)
检查 SVN 服务器端存储空间
服务器磁盘满是更常见的根本原因,尤其当错误含 500 Internal Server Error 或路径指向 db/txn-protorevs/xxx.rev 时,说明服务端写入预提交事务失败:
- 典型报错:
SVN\db\txn-protorevs\7500-5vd.rev: 磁盘上没有足够的空间 - 注意:监控显示“可用空间为 0 字节”即为确诊依据
- 操作建议:登录服务器,用
df -h(Linux)或磁盘管理器(Windows)查看仓库所在分区;重点清理日志、备份、无用转储文件,或迁移仓库到更大磁盘
排查隐藏的锁和残留临时文件
磁盘空间不足曾导致中断提交,容易遗留锁定状态或损坏的 .svn 元数据,进一步引发后续提交失败:
- 表现:提交时提示
Working copy XXXXXXXX locked,或 cleanup 后仍报 I/O 错误 - 安全清理步骤:右键项目根目录 → TortoiseSVN → Clean up,勾选 Break locks 和 Vacuum pristine copies
- 进阶处理:若 cleanup 失败,可手动进入每个
.svn子目录,删除lock文件及tmp/下残留文件(确保已备份本地修改)
预防与优化建议
避免反复踩坑,建议从流程和配置入手:
- 定期巡检:对 SVN 服务端磁盘设置告警(如剩余
- 限制大文件:在 pre-commit 钩子中加入文件大小校验(例如拒绝 >50MB 的单文件提交)
- 客户端规范:统一要求开发机 C 盘保留 ≥5GB 可用空间;工作副本尽量不放在系统盘
- 替代方案:超大二进制文件(视频、ISO 等)改用 Git LFS、NAS 或对象存储,而非 SVN 原生管理











