This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.
Subversion 为用户提供了许多可配置的行为, 有很多选项, 用户希望它们 能被应用到所有的 Subversion 操作中. 为了方便用户, Subversion 提供了配置 文件, 这些配置文件被单独地放在了 Subversion 配置区域, 这就避免了用户每 次都要在命令行上指定参数.
Subversion 运行时配置区域 ( runtime configuration area) 是一个由选项名和 选项值组成的双层体系, 第一层是一个目录, 目录里包含了许多配置文件,每 个配置文件是 INI 格式的文本文件, 文件里的 “节” 是双层 体系的第二层. 用户可以使用任意一个文本编辑器 (例如 Emacs 或 vi) 编辑 这些配置文件, 文件里的配置指令将被客户端命令行工具读取, 用来指定客户 端命令行工具的行为.
客户端命令行工具 svn 首次运行时, 它将创建一个
每用户配置区域. 在类 Unix 系统上, 每用户配置区域是一个在用户家目录下
的 .subversion
目录. 在 Win32 系统上, 配置区域是
一个名为 Subversion
的文件夹, 通常放在用户配置
文件目录 (通常是一个隐藏目录) 的 Application Data
区域内, 而 Application Data
的确切位置在每
个 Win32 系统上可能都不太一样, 它的确切位置由系统注册表 (Windows
Registry) 决定 [70]. 在后面的内容里,
我们将用 .subversion
指代 Subversion 的每用户
配置区域.
除了每用户配置区域, Subversion 还会考虑全局配置区域, 全局配置区域
允许管理员为所有用户设定一个默认配置. 注意, 每用户配置区域的设置会
覆盖全局配置区域的设置, 而 svn 的命令行参数则会
覆盖每用户配置区域的设置. 对于类 Unix 系统, 全局配置区域在
/etc/subversion
; 对于 Windows 系统, 全局配置区域
在 Application Data
(同样, 它的确切位置由系统注
册表决定) 的 Subversion
目录内. 与每用户配置区域不
同的是 svn 不会在启动时尝试创建全局配置区域.
每用户配置区域包含了三个文件—两个配置文件
(config
和 servers
) 和
一个 README.txt
, README.txt
介绍了 INI 格式的语法. 每用户配置区域被创建时, 配置文件包含了
Subversion 所支持的选项的默认值, 大多数内容都被分组注释, 注释描述了
选项值将会如何影响 Subversion 的行为. 为了修改配置, 用户只需要用文本
编辑器打开配置文件, 然后修改选项的值. 如果你想恢复每用户配置区域的
默认配置, 只需要删除 (或移动) 每用户配置区域的目录, 然后随便执行一
个无害的 svn 命令, 例如
svn --version
, 此时就会重新生成包含了默认配置
的每用户配置区域.
Subversion 还允许用户通过命令行选项 --config-option
修改个别的配置选项, 如果用户想要临时修改配置, 那么这个选项就会很有用.
关于 --config-option
的详细用法, 见
svn 选项.
每用户配置区域还包含了认证数据的缓存. 目录
auth
内含有多个子目录, 这些子目录包含了
Subversion 支持的不同认证方式所需的缓存信息. 目录
auth
的权限配置是仅允许用户进行访问.
除了通常的基于 INI 格式的配置文件, 在 Windows 平台上, Subversion 还 可以使用系统注册表存放配置选项. 选项的名字和值与 INI 文件相同, “文件/节” 的层次结构仍然保留了下来, 不过是以另一种形式 呈现—文件与节变成了注册表键树的层次.
Subversion 在注册表的
HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion
里搜索全局配置, 例如选项 global-ignores
在文件
config
里的位置是在
[miscellany]
节内, 对应的注册表位置是
HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Config\Miscellany\global-ignores
.
每用户的配置在
HKEY_CURRENT_USER\Software\Tigris.org\Subversion
.
基于注册表的配置在基于文件的配置 之前 被读取, 因此配置文件将会覆盖注册表的配置. 换句话说, 在 Windows 系统中, Subversion 会在下面这些位置搜索配置信息, 编号小的位置的配置将会覆盖 编号大的配置:
命令行选项
每用户的 INI 文件
每用户的系统注册表
全局的 INI 文件
全局的系统注册表
Windows 系统注册表实际上不支持用于注释的记号, 但 Subversion
自己会忽略所有名字以井号 (#
) 开始的键, 在效果上
等价于把选项注释掉, 这就避免了用户仅仅为了删除选项而把对应的键从注册
表中删除, 也简化了恢复选项的操作.
客户端命令行工具 svn 从来不会修改 Windows
系统注册表, 也不会在首次运行时在注册表内创建默认配置, 用户需要自己
使用 Windows 工具 REGEDIT 创建所需的键. 另外, 用户
也可以自己编写一个 .reg
文件 (例如 例 7.1 “系统注册表项文件 (.reg) 的一个示例” 所展示的
那样), 然后在文件浏览器内双击该文件的图标, 这将导致文件内的数据被合并
到系统注册表内.
例 7.1. 系统注册表项文件 (.reg) 的一个示例
REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Servers\groups] [HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Servers\global] "#http-auth-types"="basic;digest;negotiate" "#http-compression"="yes" "#http-library"="" "#http-proxy-exceptions"="" "#http-proxy-host"="" "#http-proxy-password"="" "#http-proxy-port"="" "#http-proxy-username"="" "#http-timeout"="0" "#neon-debug-mask"="" "#ssl-authority-files"="" "#ssl-client-cert-file"="" "#ssl-client-cert-password"="" "#ssl-pkcs11-provider"="" "#ssl-trust-default-ca"="" "#store-auth-creds"="yes" "#store-passwords"="yes" "#store-plaintext-passwords"="ask" "#store-ssl-client-cert-pp"="yes" "#store-ssl-client-cert-pp-plaintext"="ask" "#username"="" [HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\auth] "#password-stores"="windows-cryptoapi" [HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\helpers] "#diff-cmd"="" "#diff-extensions"="-u" "#diff3-cmd"="" "#diff3-has-program-arg"="" "#editor-cmd"="notepad" "#merge-tool-cmd"="" [HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\tunnels] [HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\miscellany] "#enable-auto-props"="no" "#global-ignores"="*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store" "#interactive-conflicts"="yes" "#log-encoding"="" "#mime-types-file"="" "#no-unlock"="no" "#preserved-conflict-file-exts"="doc ppt xls od?" "#use-commit-times"="no" [HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\auto-props]
例 7.1 “系统注册表项文件 (.reg) 的一个示例”
展示了一个 .reg
文件, 文件内包含了最常用到的配置
选项以及它们的默认值. 注意, 文件同时包含了全局配置 (与网络代理相关的
选项) 与每用户配置 (例如编辑器和密码缓存等), 而且所有的选项都被注释了,
为了修改配置, 你只需要删除选项名前的井号 (#
), 然后
再修改选项值.
本节我们将介绍 Subversion 目前支持的运行时配置选项.
文件 config
包含了与网络无关的运行时配置
选项, 到目前为止用到的配置选项并不多, 为了方便今后扩展, 这些选项
被分组到了不同的节内.
[auth]
节包含了和仓库认证与授权有关的配置,
它包含的配置选项有:
password-stores
选项值是由逗号分隔的列表, 列表指出了当 Subversion 存放
和检索缓存的认证证书时, 应该使用操作系统提供的哪些方法, 以及
这些方法的优先级. 默认值是 gnome-keyring, kwallet,
keychain, gpg-agent, windows-crypto-api
, 分别表示
GNOME Keyring, KDE Wallet, Mac OS Keychain, GnuPG Agent
和 Microsoft Windows 密码 API. 如果列表中出现了操作系统不支持
的方法, 该方法将被忽略.
store-passwords
该选项已经被 config
弃用, 它现在
在文件 servers
内, 作为一个每服务器配置项,
见 “每服务器配置”一节.
store-auth-creds
该选项已经被 config
弃用, 它现在
在文件 servers
内, 作为一个每服务器配置项,
见 “每服务器配置”一节.
[helpers]
节控制 Subversion 所使用的外部
程序, 它包含的配置选项有:
diff-cmd
指定差异比较工具的绝对路径, Subversion 在生成 “差异” 输出时 (例如执行命令 svn diff) 将会用到该工具. 默认情况下, Subversion 使用的是自己内部的差异比较库函数来生成差异输出—设置该 选项将导致 Subversion 转而使用外部差异比较工具. 关于如何使用 外部差异比较工具的更多信息, 见 “使用外部差异比较与合并工具”一节.
diff-extensions
就像命令行选项 --extensions
(-x
), 该选项向差异比较引擎 (内部的或外部的)
传递额外的参数. 选项的有效值与 Subversion 所使用的差异比较
引擎有关, 更多的细节见 svn help diff
的输出. 该选项的默认值是 -u
.
diff3-cmd
该选项指定三路差异比较工具的绝对路径. 当工作副本从服务器 接收更新时, Subversion 将使用该工具把服务器上的更新合并到本地. 默认情况下 Subversion 使用的是自己内部的差异比较库函数来合并 更新—设置该选项将导致 Subversion 转而使用外部工具来完成 合并. 关于如何使用三路差异比较工具的更多信息, 见 “使用外部差异比较与合并工具”一节.
diff3-has-program-arg
如果由选项 diff3-cmd
指定的程序支持
命令行参数 --diff-program
, 那么就应该把
diff3-has-program-arg
设置成
true
.
editor-cmd
指定文本编辑器程序. 当 Subversion 向用户请求输入文本, 或者交互式地解决冲突时将会用到该程序. 关于 Subversion 使用 外部编辑器的更多信息, 见 “使用外部编辑器”一节.
merge-tool-cmd
指定一个合并工具, 用于 Subversion 执行三路合并操作. 关于这种工具的更多信息, 见 “使用外部差异比较与合并工具”一节.
[tunnels]
节允许用户定义新的隧道方案, 用
于 svnserve 和 svn://
的
客户端连接, 更多的细节见 “SSH 隧道”一节.
[miscellany]
节则包含了不属于其他地方的
所有选项, 在 [miscellany]
里, 你可以找到:
enable-auto-props
指示 Subversion 为新增和导入的文件自动设置属性. 选项的默认
值是 no
, 将其设置成 yes
将开启自动属性设置. 配置文件内的
[auto-props]
节用于指定哪些文件应该设置什么
样的属性.
global-ignores
执行命令 svn status 时, 除了被版本控制
的文件外, Subversion 同时还会列出未被版本控制的文件, 但是这些
文件的名字前会出现一个 ?
字符 (见 “查看修改的整体概述”一节). 列出这些未被版本
控制的项目有时候会让人感到讨厌—例如编译过程中生成的目标
文件就没必要列出来. 选项 global-ignores
包含
了由空白字符分隔的文本表达式列表, 如果某个文件的名字与这些表达式
中的一个或多个相匹配, svn status 就不会显示
这个文件名, 除非它是被版本控制的文件. 选项的默认值是
*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc
*.pyo *.rej *~ #*# .#* .*.swp .DS_Store
.
和 svn status 一样, 命令 svn
add 和 svn import 也会忽略与
global-ignores
匹配的文件. 为了显式地表示
不想忽略某个文件, 可以在执行这三个命令时, 显式地指定文件名,
或使用命令行参数 --no-ignore
.
关于如何更加精细地忽略文件, 见 “忽略未被版本控制的项”一节.
interactive-conflicts
指示 Subversion 是否应该尝试交互地解决冲突. 如果它的值是
yes
(默认值), 在冲突发生时, Subversion
将按照 “解决冲突”一节 介绍的方式,
询问用户如何处理冲突; 否则的话, Subversion 只会给文件设置冲突
标记, 然后继续往下操作, 从而推迟解决冲突.
log-encoding
该选项用于设置日志消息的默认字符编码, 它是命令行参数
--encoding
(见 svn 选项) 的等效选项. Subversion 仓库
使用 UTF-8 编码存放日志消息, 并且假设用户使用的是操作系统
的默认编码来编写日志消息, 如果你不是用的操作系统的默认编码
来编写日志消息的话, 那你就应该把字符编码的名字写到
log-encoding
里.
mime-types-file
该选项在 Subversion 1.5 引入, 用于指定一个 MIME 类型映射
文件, 例如由 Apache HTTP 服务器提供的
mime.types
. Subversion 使用 MIME 类型映射
文件为新增或导入的文件设置 MIME 类型. 关于 Subversion 如何
检测和使用文件内容类型的更多信息, 见 “自动属性设置”一节 和 “文件内容类型”一节.
no-unlock
这个选项和 svn commit 命令行选项
--no-unlock
相对应, 命令行选项
--no-unlock
告诉 Subversion 在提交修改后不
要释放文件上的锁. 如果把 no-unlock
设置
成 yes
, Subversion 就不会自动释放锁, 为
了解锁, 用户必须显式地执行 svn unlock.
默认值是 no
.
preserved-conflict-file-exts
选项的值是由空格分隔的文件扩展名列表, 当 Subversion 生成 冲突文件名时必须保留这些扩展名. 该选项在 Subversion 1.5 引入, 默认值为空.
当 Subversion 检测到有冲突发生时, 会把冲突的解决交由用户
处理. 为了帮助解决冲突, Subversion 把互相冲突的两个版本的文件
保存到工作副本里, 默认情况下, 这些文件的名字是原来的文件名
再加上一个特定的扩展名, 例如 .mine
或
.
(REV
REV
表示一个版本号). 这种命名方式
可能产生的一个问题是在某些操作系统上, 文件扩展名决定了用于打开
它的默认应用程序, 为文件名添加一个特定的扩展名可能会导致无法
使用正确的应用程序轻易地打开文件. 比如说文件
ReleaseNotes.pdf
有冲突发生, 冲突文件可
能被命名成 ReleaseNotes.pdf.mine
和
ReleaseNotes.pdf.r4231
, 操作系统使用
Adobe Acrobat Reader 打开扩展名为 .pdf
的文件, 但是很可能没有默认程序能够打开扩展名为
.r4231
的文件.
配置选项 preserved-conflict-file-exts
可以帮助用户解决这一问题. 对于扩展名和选项相匹配的文件,
Subversion 像往常一样在冲突文件的名字末尾加上特定的扩展名后,
会再次添加文件原来的扩展名. 对于前面的例子, 假设
preserved-conflict-file-exts
的值含有
pdf
, 那么为
ReleaseNotes.pdf
所生成的冲突文件将
被命名成 ReleaseNotes.pdf.mine.pdf
和
ReleaseNotes.pdf.r4231.pdf
. 因为冲突文件
的扩展名仍然是 .pdf
, 因此在打开它们时
会用到正确的默认应用程序.
use-commit-times
通常情况下, 工作副本里的文件包含了能够反映文件最后一次是 在什么时候被进程—例如文本编辑器或 svn 命令—修改了的时间戳. 这个时间戳对于软件开发非常有用, 因 为软件构建系统通过查看时间戳来决定是否需要重新编译某个文件.
然而在其他场景下, 如果这个时间戳反映的是工作副本里的文件
最后一次在仓库里被修改的时间—这在某些情况下会非常方便.
命令
svn export 总是把它所生成的目录树的时间
戳设置成 “最后一次提交的时间”. 如果把
use-commit-times
设置成
yes
, 那么命令 svn
checkout, svn update,
svn switch 和 svn revert
也会把它们所修改的文件的时间戳设置成最后一次提交的时间.
[auto-props]
节控制着 Subversion 客户端如何
为新增和导入的文件自动设置属性. 它包含了任意数量的键值对, 键值对的
格式是
, 其中 PATTERN
= PROPNAME
=VALUE
[;PROPNAME
=VALUE
...]PATTERN
是一个文件
名模式, 用于匹配一个或多个文件名, 剩下的部分是分号分隔的属性赋值语句.
(如果在属性名或属性值中需要用到分号, 就连着写两次分号来转义.)
$ cat ~/.subversion/config … [auto-props] *.c = svn:eol-style=native *.html = svn:eol-style=native;svn:mime-type=text/html;; charset=UTF8 *.sh = svn:eol-style=native;svn:executable … $ cd projects/myproject $ svn status ? www/index.html $ svn add www/index.html A www/index.html $ svn diff www/index.html … Property changes on: www/index.html ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/html; charset=UTF8 Added: svn:eol-style ## -0,0 +1 ## +native $
如果一个文件匹配了多个模式, 它就会被设置上多个属性, 但 Subversion
无法保证属性会按照出现在配置文件里的顺序设置到文件上, 所以说用户不能
期望用一个属性设置去覆盖另一个属性设置. 用户可以在文件
config
里看到自动属性设置的几个示例. 如果你希望
开启自动属性设置, 别忘了把 [miscellany]
节的
enable-auto-props
选项设置成
yes
.
Subversion 1.8 增加了一个新的 [working-copy]
节, 用于配置工作副本, 它包含的选项有:
exclusive-locking-clients
开启工作副本的 SQLite 互斥锁, 它可用于提升位于网络磁盘上
的工作副本的性能. 如果把该选项设置成 svn
,
Subversion 命令行客户端将使用互斥锁, 这会降低加锁的开销, 但
并不是说同一时刻只能允许一个客户端访问工作副本, 如果工作副本
已经被锁定了, 那么试图访问工作副本的其他客户端会阻塞 10 秒钟,
然后返回一个错误. 在大多数情况下, 人们更喜欢用共享锁, 但是如果
工作副本是在网络磁盘 (而不是本地磁盘) 上, 那么锁的开销就更值得
关注. 对于放在网络磁盘上的大型工作副本, 使用互斥锁会得到很大的
性能提升, 在某些情况下甚至能达到两三倍的提升. 该选项在
Subversion 1.8 引入.
exclusive-locking
如果把该选项设置成 true
, 将为所有
Subversion 1.8 客户端开启工作副本的互斥锁, 而某些客户端可能
会无法正常工作. 选项的默认值是 false
,
在 Subversion 1.8 引入.
文件 server
包含了与网络层有关的配置选项.
文件内有两个特殊的节—[groups]
和
[global]
. [groups]
节本质上
是一个交叉引用表. 节内选项的名字是文件内其他节的名字, 选项的值是
文本表达式 (globs)
—可能包含通配符的文本. 向服务器发送请求时, Subversion 将会把
服务器的主机名和这些文本表达式进行匹配.
[groups] beanie-babies = *.red-bean.com collabnet = svn.collab.net [beanie-babies] … [collabnet] …
如果 Subversion 需要访问网络, 它将尝试把服务器的主机名和
[groups]
节中的选项进行匹配. 如果匹配成功,
Subversion 就会在 servers
里查找以选项名命名的
节, 然后从该节读取与这个服务器有关的配置.
如果服务器的主机名不与 [groups]
内的任意一
个文本表达式相匹配, Subversion 就从 [global]
读取
服务器配置. [global]
所包含的选项与其他节完全
相同 (当然, 除了 [groups]
节), 这些选项有:
http-auth-types
选项包含了客户端支持的 HTTP 认证类型, 类型之间用分号分开.
有效的认证类型包括 basic
,
digest
和 negotiate
,
默认行为是允许所有的认证类型. 举个例子, 如果客户端要求不能以
明文方式传输认证证书, 可以把该选项设置成
digest;negotiate
—忽略
basic
类型. (注意, 这种设置只对基于 Neon 的
HTTP 模块才有效.)
http-compression
指定是否对发往 DAV 已就绪的服务器的网络数据进行压缩,
默认值是 yes
(但只有在网络层支持压缩的
情况下才会真正对数据进行压缩). 把选项设置成
no
将禁止压缩, 例如当我们需要对网络传输
进行调试时.
http-library
该选项允许用户指定他们更愿意使用哪种 WebDAV 访问模块
(通常是每服务器配置). 在 1.8 版之前, Subversion 提供了两种
WebDAV 访问模块: 较老的 libsvn_ra_neon
(对应的选项值是 neon
) 和较新的
libsvn_ra_serf
(对应的选项值是
serf
). 从 1.8 开始, 虽然 Subversion 只支持
libsvn_ra_serf
, 但这个配置选项还是保留了
下来, 因为运行时配置区域无法知晓 Subversion 的版本. 如果用户
的系统中安装了多种 Subversion 版本, 在使用旧版客户端访问服务
器时, 他们可能仍然希望为 http-library
设置上 libsvn_ra_neon
.
http-proxy-exceptions
选项值是由逗号分隔的列表, 列表的元素是仓库服务器的主机 名模式, 符合模式的服务器将不会使用代理, 而是直接访问. 模式 的写法和 Unix Shell 的文件名模式写法相同.
http-proxy-host
指定基于 HTTP 的 Subversion 请求必须经过的代理服务器的 主机名. 默认值是空, 这意味着 Subversion 不会尝试把 HTTP 请 求路由给代理服务器, 而是直接发给目标服务器.
http-proxy-password
指定提供给代理服务器的密码, 默认值是空.
http-proxy-port
指定代理服务器的端口号, 默认值是空.
http-proxy-username
指定提供给代理服务器的用户名, 默认值是空.
http-timeout
指定服务器响应的等待时间, 以秒为单位. 如果用户发现低速
的网络常常导致 Subversion 命令超时, 那你应该把
http-timeout
调大. Subversion 1.8 (或更
老的, 基于 Serf 的版本) 用 0
表示不设置
超时.
neon-debug-mask
选项值是一个整数掩码, Neon HTTP 库函数将根据这个掩码来
决定打印哪些调试信息, 默认值是 0
, 这会
禁止打印所有的调试信息. 在 1.8 之前的版本, 大多数 Subversion
客户端都使用 Neon (借助 libsvn_ra_neon
仓库访问模块) 完成客户端和服务器之间的 WebDAV/HTTP 通信.
但从 Subversion 1.8 开始不再支持
libsvn_ra_neon
, 所以这个选项在新版
Subversion 里被淘汰了.
ssl-authority-files
选项值是分号分隔的路径列表, 其中每个路径都指向一个文件, 该文件包含了认证机构的证书, 当 Subversion 客户端使用 HTTPS 访问仓库时将信任这些证书.
ssl-client-cert-file
如果一个主机 (或多个主机) 要求提供一个 SSL 客户端证书, 用户通常会收到一个要求输入证书路径的提示信息. 把该选项设置 成证书的路径, Subversion 就可以自动搜索到证书, 而不会再提示 用户输入证书路径. 并不存在一个存在证书的标准位置, Subversion 会从用户指定的任意位置读取证书.
ssl-client-cert-password
如果用户的 SSL 客户端证书被一个密码加密, 每当 Subversion
使用证书都会提示用户输入密码. 如果你觉得这有点烦人, 而且你也
不介意把密码写到 servers
文件里, 那就
把该选项设置成证书的密码, 这样你就不会再收到要求输入证书密码的
提示.
ssl-pkcs11-provider
选项值是 PKCS#11 提供商的名字, 它刻画了 SSL 客户端的证书 (如果服务器要求提供证书的话). 这个设置只对 Subversion 基于 Neon 的 HTTP 模块才有效, 而这种模块在 Subversion 1.8 中已经被移除了.
ssl-trust-default-ca
如果用户希望 Subversion 自动信任 OpenSSL 附带的默认证书
的话, 就把它设置成 yes
.
store-auth-creds
该选项基于上和 store-passwords
相同,
唯一的不同点是它用于开启或禁止 所有的
认证信息缓存, 包括用户名, 密码, 服务器证书, 以及其他能被缓存
的凭证.
store-passwords
指定 Subversion 是否应该缓存用户密码, 这个密码是服务器
要求认证时用户输入的. 默认值是 yes
, 如果
设置成 no
将禁止缓存密码. 用户可以使用
svn 的命令行选项
--no-auth-cache
覆盖掉
store-passwords
的设置 (当然, 这种覆盖只
对支持 --no-auth-cache
的子命令才有意义).
关于密码缓存的更多信息, 见
“缓存证书”一节. 注意,
无论是否设置 store-passwords
, Subversion
都不会以明文方式存放密码, 除非
store-plaintext-passwords
被设置成
yes
.
store-plaintext-passwords
该选项只在类 Unix 系统上才需要注意. 如果密码只能以明文方式
缓存在磁盘上 (具体的位置是
~/.subversion/auth/
), 此时 Subversion 将
根据该选项决定接下来该怎么做. 如果把它设置成
yes
或 no
, 将分别允许
或禁止以明文方式缓存密码. 默认值是 ask
,
于是 Subversion 每当遇到一个 新的 密码时,
都会询问用户是否以明文方式把它缓存到
~/.subversion/auth/
.
store-ssl-client-cert-pp
该选项用于设置 Subversion 是否应该缓存用户输入的 SSL
客户端证书密码, 默认值是 yes
, 设置成
no
将禁止缓存.
store-ssl-client-cert-pp-plaintext
当 Subversion 尝试缓存 SSL 客户端证书密码时, 该选项用于
控制是否允许以明文方式存放到磁盘上. 默认值是
ask
, 使得 Subversion 每次遇到一个
新的 SSL 客户端证书密码时都会向用户询问
是否以明文方式缓存到 ~/.subversion/auth/
,
把选项设置成 yes
或 no
将允许或禁止明文缓存, Subversion 也不会再询问用户.
[70] 环境变量 APPDATA
的
值指出了 Application Data
区域的路径, 所以说
用户总是可以用 %APPDATA%\Subversion
引用
Subversion 每用户配置区域的路径.