本手册旨在描述 Subversion 1.4。如果您正在运行更新版本的 Subversion,我们强烈建议您访问 https://svnbook.subversion.org.cn/ 并参考适合您 Subversion 版本的手册。
svn log — 显示提交日志消息。
显示来自仓库的日志消息。如果没有提供任何参数,svn log 将显示工作副本当前工作目录(包括)内所有文件和目录的日志消息。您可以通过指定路径、一个或多个修订版本或两者的组合来细化结果。本地路径的默认修订版本范围是 BASE:1。
如果您只指定一个 URL,则它将打印该 URL 包含的所有内容的日志消息。如果您在 URL 后添加路径,则只打印该 URL 下这些路径的日志消息。URL 的默认修订版本范围是 HEAD:1。
使用 --verbose,svn log 还将打印每个日志消息中所有受影响的路径。使用 --quiet,svn log 不会打印日志消息正文本身(这与 --verbose 兼容)。
每个日志消息只打印一次,即使该修订版本的多个受影响路径被明确请求。默认情况下,日志会跟踪复制历史。使用 --stop-on-copy 禁用此行为,这对于确定分支点很有用。
--revision (-r) REV --quiet (-q) --verbose (-v) --targets FILENAME --stop-on-copy --incremental --limit NUM --xml --username USER --password PASS --no-auth-cache --non-interactive --config-dir DIR
您可以通过在工作副本的顶层运行 svn log 来查看工作副本中所有发生更改的路径的日志消息
$ svn log ------------------------------------------------------------------------ r20 | harry | 2003-01-17 22:56:19 -0600 (Fri, 17 Jan 2003) | 1 line Tweak. ------------------------------------------------------------------------ r17 | sally | 2003-01-16 23:21:19 -0600 (Thu, 16 Jan 2003) | 2 lines …
检查工作副本中特定文件的日志消息
$ svn log foo.c ------------------------------------------------------------------------ r32 | sally | 2003-01-13 00:43:13 -0600 (Mon, 13 Jan 2003) | 1 line Added defines. ------------------------------------------------------------------------ r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines …
如果您没有现成的工作副本,您可以记录一个 URL
$ svn log http://svn.red-bean.com/repos/test/foo.c ------------------------------------------------------------------------ r32 | sally | 2003-01-13 00:43:13 -0600 (Mon, 13 Jan 2003) | 1 line Added defines. ------------------------------------------------------------------------ r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines …
如果您希望在同一个 URL 下的多个不同路径,您可以使用 URL [PATH...] 语法。
$ svn log http://svn.red-bean.com/repos/test/ foo.c bar.c ------------------------------------------------------------------------ r32 | sally | 2003-01-13 00:43:13 -0600 (Mon, 13 Jan 2003) | 1 line Added defines. ------------------------------------------------------------------------ r31 | harry | 2003-01-10 12:25:08 -0600 (Fri, 10 Jan 2003) | 1 line Added new file bar.c ------------------------------------------------------------------------ r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines …
当您连接多个对 log 命令的调用的结果时,您可能希望使用 --incremental 选项。通常情况下,svn log 在每个后续日志消息的开头、每个后续日志消息之后以及最后一个日志消息之后打印一条虚线。如果您在两个修订版本的范围内运行 svn log,您将得到以下结果
$ svn log -r 14:15 ------------------------------------------------------------------------ r14 | … ------------------------------------------------------------------------ r15 | … ------------------------------------------------------------------------
但是,如果您想将 2 个非连续的日志消息收集到一个文件中,您可以尝试以下操作
$ svn log -r 14 > mylog $ svn log -r 19 >> mylog $ svn log -r 27 >> mylog $ cat mylog ------------------------------------------------------------------------ r14 | … ------------------------------------------------------------------------ ------------------------------------------------------------------------ r19 | … ------------------------------------------------------------------------ ------------------------------------------------------------------------ r27 | … ------------------------------------------------------------------------
您可以使用增量选项避免输出中出现双虚线混乱
$ svn log --incremental -r 14 > mylog $ svn log --incremental -r 19 >> mylog $ svn log --incremental -r 27 >> mylog $ cat mylog ------------------------------------------------------------------------ r14 | … ------------------------------------------------------------------------ r19 | … ------------------------------------------------------------------------ r27 | …
--incremental 选项在使用 --xml 选项时提供了类似的输出控制。
如果您对特定路径运行 svn log 并提供特定修订版本,但没有得到任何输出
$ svn log -r 20 http://svn.red-bean.com/untouched.txt ------------------------------------------------------------------------
这意味着该路径在该修订版本中没有被修改。如果您从仓库的顶层记录日志,或者知道在该修订版本中发生更改的文件,您可以明确地指定它
$ svn log -r 20 touched.txt ------------------------------------------------------------------------ r20 | sally | 2003-01-17 22:56:19 -0600 (Fri, 17 Jan 2003) | 1 line Made a change. ------------------------------------------------------------------------