SVN客户端不原生支持多仓库自动记多账号,但可通过URL唯一性(如不同端口、路径)实现分仓凭据缓存;切换账号需清除对应auth缓存或使用TortoiseSVN的Saved Data→Clear认证数据。

SVN客户端本身不支持“为不同仓库自动记住多组账号密码”的原生切换机制,但可以通过合理利用本地认证缓存、路径隔离和工具辅助实现效果等价的多账号管理。
理解SVN客户端的密码缓存逻辑
Windows下TortoiseSVN或命令行svn会将凭证按“服务器+端口+协议+路径”组合唯一标识并缓存。例如:
- svn://192.168.1.100:3690/projectA → 缓存一组凭据
- svn://192.168.1.100:3690/projectB → 视为不同地址,可缓存另一组
- svn://192.168.1.100:3691/projectA → 端口不同,也视为独立条目
这意味着只要各版本库使用不同的URL(哪怕只是端口或路径层级不同),客户端就能分别记住对应密码。
实操建议:用URL差异区分多仓库凭据
若服务端已部署多个仓库(如/repo/test、/repo/prod),直接使用完整路径URL即可:
- 检出时输入:
svn://server-ip/test→ 输入 test 账号密码 → 自动记住 - 再检出:
svn://server-ip/prod→ 输入 prod 账号密码 → 单独记住
关键点:不要共用根URL(如svn://server-ip/)去访问不同子目录,否则容易混淆缓存。务必使用带具体仓库名的完整URL。
清理与切换已有凭据
当需要更换某仓库的登录账号,或清除错误缓存时:
- Windows:进入
%APPDATA%\Subversion\auth\svn.simple\,删除对应哈希文件(文件名即URL指纹) - TortoiseSVN:右键 → TortoiseSVN → Settings → Saved Data → 点击“Clear”按钮清空“Authentication data”
- 命令行:执行
svn auth --remove(Subversion 1.10+ 支持)指定URL移除
之后首次访问该URL会重新提示输入,新凭据即被单独保存。
进阶方案:用TSvnPwd辅助管理和验证
TSvnPwd.exe 可读取本地缓存的Base64编码凭据,用于核对或迁移。它不修改密码,但能帮你确认当前各URL实际存储的是哪组账号,避免误操作。注意仅在可信环境使用,避免泄露敏感信息。
不复杂但容易忽略:真正起作用的是URL的唯一性,而不是用户名本身。只要让每个仓库有专属可识别的访问地址,多组密码自然就分开了。

















