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.

高层日志记录

Apache 的 httpd 和 Subversion 的 svnserve 都支持在较高的层次为 Subversion 操作记录 日志. 虽然这两种服务器配置高层日志的方式不太一样, 但它们输出的日志都 遵循相同的语法.

为了让 svnserve 开启高层日志, 只需在启动 svnserve 时带上选项 --log-file, 选项的值是日志文件路径.

$ svnserve -d -r /path/to/repositories --log-file /var/log/svn.log

在 Apache 中启用高层日志要稍微复杂一些, 但本质上就是 Apache 日志 输出机制的扩展, 配置方式见 “Apache 日志”一节.

下面列出了在启用高层日志后, 服务器将为 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 的日志.