svn提交提示“被其他用户锁定”表明文件被他人显式加锁且未释放,属服务端真实排他锁,需先查锁归属与状态,优先联系锁拥有者手动解锁;确需强制解锁时仅限失联或异常情况,并注意数据风险;团队应规范锁使用范围、备注要求及定期清理机制。

SVN 提交时提示“被其他用户锁定”,说明该文件已被他人显式加锁(lock),且锁未释放。这不是本地残留锁或系统占用问题,而是服务端真实存在的排他性锁定,需按协作规范处理,不能直接清理或跳过。
先确认锁归属和状态
别急着解锁,先搞清谁锁的、为什么锁、是否还在用:
- 右键文件 → TortoiseSVN → “Properties” → 切换到“Subversion”选项卡,查看 Lock Owner、Lock Comment 和 Lock Created 时间
- 或在命令行执行:
svn info --show-item lock <em>文件路径</em>,输出中会明确显示锁拥有者、创建时间及备注 - 若锁已存在数天且无备注,大概率是异常残留;若刚锁几小时且有编辑说明,应优先联系对方
联系锁拥有者手动解锁
这是最安全、推荐的第一步操作:
- 通过即时通讯、邮件或当面沟通,确认对方是否仍在编辑该文件
- 请对方在自己工作副本中右键文件 → TortoiseSVN → “Release Lock” 完成解锁
- 若对方已提交修改,你只需 update 即可;若对方尚未提交,可协商暂解锁供你紧急修改
确需强制解锁时的操作与风险
仅在对方失联、锁明显异常(如锁了超过24小时且无任何修改记录)、且你有仓库写权限时考虑:
- TortoiseSVN:右键文件 → “TortoiseSVN” → “Get Lock…” → 勾选“Force unlock” → 点击 OK
- 命令行方式:
svn unlock --force <em>文件URL或本地路径</em>(URL 更稳妥,如https://svn.example.com/repo/project/file.docx) - 注意:强制解锁后,对方本地工作副本仍保留旧锁标记,若其后续尝试提交,会报错并可能丢失未提交的修改——务必提前同步并备份双方改动
预防重复发生
锁定机制本为保护二进制文件(如 PSD、XLSX、PDF),但常被误用于文本文件。团队应统一规范:
- 明确只对非合并型文件(图片、文档、音视频等)加锁,源代码类文本文件禁用 lock
- 加锁时必须填写有意义的 Comment(例如:“正在重绘首页Banner,预计1小时内完成”)
- 管理员可定期运行脚本清理陈旧锁:
svnadmin lslocks /path/to/repo+svnadmin rmlocks - 客户端升级至 1.14+ 版本,支持自动锁超时(需服务端配置)
本质上,“被其他用户锁定”是 SVN 的协作设计,不是故障。正确响应的关键在于沟通优先、权限审慎、规则前置。不复杂但容易忽略。











