本文档旨在描述 Apache™ Subversion® 的 1.7.x 系列。如果您运行的是其他版本的 Subversion,强烈建议您访问 https://svnbook.subversion.org.cn/ 并查阅适合您 Subversion 版本的文档。

高级日志记录

Apache httpdsvnserve 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=()
重放修订版 (svnsync)
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 的日志输出。