10. 认证

通过 CVS 的 pserver,你需要在读写操作之前登陆到服务器(使用 cvs login 命令)—即使是匿名操作。当 Subversion 版本库使用 Apache 的 httpdsvnserve 作为服务器时,你不需要在开始时提供认证凭证—如果一个操作需要认证,服务器会要求你的凭证(不管这凭证是用户名与密码,客户证书,还是两个都有)。所以如果你的工作副本是全球可读的,在所有的读操作中不需要任何认证。

相对于CVS,Subversion会一直在磁盘(在你的~/.subversion/auth/目录)缓存凭证,除非你通过--no-auth-cache选项告诉它不这样做。

这个行为也有例外,当使用基于 SSH 隧道的 svnserve 服务器时,使用 svn+ssh:// 的 URL 方案。在这种情况下,ssh 会在通道刚开始时无条件的要求认证。