本文档旨在描述 Apache™ Subversion® 的 1.7.x 系列。如果您运行的是其他版本的 Subversion,强烈建议您访问 https://svnbook.subversion.org.cn/ 并查阅适合您 Subversion 版本的文档。
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 的日志输出。