Subversion版本库URL

正如我们在整本书里描述的,Subversion使用URL来识别Subversion版本库中的版本化资源,通常情况下,这些URL使用标准的语法,允许服务器名称和端口作为URL的一部分:

$ svn checkout http://svn.example.com:9834/repos
…

但是Subversion处理URL的一些细微的不同之处需要注意,例如,使用file:访问方法的URL(用来访问本地版本库)必须与习惯一致,可以包括一个localhost服务器名或者没有服务器名:

$ svn checkout file:///path/to/repos
…
$ svn checkout file://localhost/path/to/repos
…

同样在Windows平台下使用file:模式时需要使用一个非正式的“标准”语法来访问本机上不在同一个磁盘分区中的版本库。下面的任意一个URL路径语法都可以工作,其中的X表示版本库所在的磁盘分区:

C:\> svn checkout file:///X:/path/to/repos
…
C:\> svn checkout "file:///X|/path/to/repos"
…

在第二个语法,你需要使用引号包含整个URL,这样竖线字符才不会被解释为管道。当然,注意URL使用普通的斜线而不是Windows本地(不是URL)的反斜线。

最后,必须注意Subversion的客户端会根据需要自动编码URL,这一点和一般的web浏览器一样,举个例子,如果一个URL包含了空格或是一个字符编码大于128的ASCII字符:

$ svn checkout "http://host/path with space/project/españa"

…Subversion会回避这些不安全字符,并且会像你输入了这些字符一样工作:

$ svn checkout http://host/path%20with%20space/project/espa%C3%B1a

如果URL包含空格,一定要使用引号,这样你的脚本才会把它做一个单独的svn参数。