高层日志记录
优质
小牛编辑
119浏览
2023-12-01
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 的日志.