输入svn log会在命令行上输出一个长得令人难以置信的无用列表。我不知道为什么这是默认值。如果我想在终端上读取(甚至可以读取)300个条目,我不介意输入svn log——full或类似的东西。

也许SVN的人认为我想把输出提供给另一个程序。然而,如果是这样的话,对程序(而不是终端用户)进行更详细的调用会更有意义。

总之,我怎么能看到最近的活动,比如最近的5个或10个条目,看看有什么变化?


当前回答

为了补充其他人所说的,你也可以在你的.bashrc或.bash_aliases文件中创建一个别名:

alias svnlog='svn log -l 30 | less'

或者任何你想要的默认值

其他回答

我喜欢在verbose模式下使用-v。 它会给你提交id,注释和所有受影响的文件。

svn log -v --limit 4

输出示例:

我添加了一些迁移,并删除了一个测试xml文件 ------------------------------------------------------------------------ r58687 | mr_x | 2012-04-02 15:31:31 +0200 (Mon, 02 Apr 2012) | 1行修改 道路: /箱子/ java / App / src /数据库/支持 /箱子/ java / App / src /数据库/支持/迁移 /箱子/ java / App / src /数据库/支持/ / remove_device.sql迁移 D /箱子/ java / App / src /代码/ test.xml

通过less或其他分页器输出:

svn log | less

限制选项,例如:

svn log --limit 4

svn log -l 4

只有最后4项

此回答针对有关Subversion子命令选项的进一步问题。对于每个可用的子命令(例如add, log, status…),您可以简单地添加——help选项来显示您可以与子命令一起使用的可用选项的完整列表,以及如何使用它们的示例。以下片段直接摘自svn log——help命令在“examples”部分的输出:

Show the latest 5 log messages for the current working copy
directory and display paths changed in each commit:
  svn log -l 5 -v

正如您已经注意到的,不带任何参数的svn log命令将显示与您指定的URL或与您运行该命令的工作副本文件夹相关的所有日志消息。

您可以始终细化/限制svn日志结果:

svn log——limit NUM将只显示修订的第一个NUM, svn log——revision REV1(:REV2)将显示REV1修订或REV1——REV2范围的日志信息, svn log——search将显示与您指定的搜索模式匹配的版本(该命令可在Subversion 1.8和更新的客户端中使用)。你可以通过 修订的作者(即提交者的用户名), 修订提交日期: 修订注释文本(日志消息), 在修订中更改的路径列表。