此文本尚在编写中,可能随时更改,可能无法准确描述任何已发布的 Apache™ Subversion® 软件版本。将此页面添加为书签或向他人推荐此页面可能不是一个明智的选择。请访问 https://svnbook.subversion.org.cn/ 获取此书的稳定版本。
Apache httpd 和 svnserve Subversion 服务器都支持对 Subversion 操作进行高级日志记录。当然,配置每个服务器选项以提供此级别日志的方式不同,但每个选项的输出都设计为符合统一语法。
要在 svnserve 中启用高级日志记录,您只需在启动服务器时使用 --log-file
命令行选项,并将该选项的值传递给 svnserve 应写入其日志输出的文件。
$ svnserve -d -r /path/to/repositories --log-file /var/log/svn.log
在 Apache 中启用相同功能稍微复杂一些,但本质上是 Apache 库存日志输出配置机制的扩展——请参阅 名为“Apache 日志记录”的部分 以获取详细信息。
以下是 Subversion 的高级日志记录机制生成的 Subversion 操作日志消息列表,后面是一条或多条该日志消息在日志输出中显示的示例。
checkout-or-export /path r62 depth=infinity
commit harry r100
diff /path r15:20 depth=infinity ignore-ancestry diff /path1@15 /path2@20 depth=infinity ignore-ancestry
get-dir /trunk r17 text
get-file /path r20 props
get-file-revs /path r12:15 include-merged-revisions
get-mergeinfo (/path1 /path2)
lock /path steal
log (/path1,/path2,/path3) r20:90 discover-changed-paths revprops=()
replay /path r19
change-rev-prop r50 propertyname
rev-proplist r34
status /path r62 depth=infinity
switch /pathA /pathB@50 depth=infinity
unlock /path break
update /path r17 send-copyfrom-args
为了方便希望对 Subversion 高级日志记录输出进行后处理的管理员(也许是为了报告或分析目的),Subversion 源代码发行版提供了一个 Python 模块(位于 tools/server-side/svn_server_log_parse.py
),可用于解析 Subversion 的日志输出。