键入svn log
会在命令行上吐出一个非常长,无用的列表。我不知道为什么这是默认值。如果我想在终端上阅读(甚至可以阅读)300个条目,我不介意输入svn log --full
或类似内容。
也许SVN的人认为我想把这个输出提供给另一个程序。但是,如果是这种情况,那么对程序进行更详细的调用会更有意义 - 而不是终端用户。
无论如何,我如何看到最近的一些活动,比如过去的5或10个条目,看看有什么变化?
答案 0 :(得分:244)
limit
选项,例如:
svn log --limit 4
svn log -l 4
仅限最后4个条目
答案 1 :(得分:124)
除了Bert F said之外,许多命令(包括log
)都有-r
(或--revision
)选项。以下是使用此选项显示修订范围的一些实际示例:
按升序列出所有内容:
svn log -r 1:HEAD
按降序列出所有内容:
svn log -r HEAD:1
按升序排列当前检出的修订版的第13个到基础的所有内容:
svn log -r 13:BASE
获取给定日期之间的所有内容:
svn log -r {2011-02-02}:{2011-02-03}
您可以将所有上述表达式与--limit
选项结合使用,这样您就可以对打印的内容进行非常精细的控制。有关这些-r
表达式的详细信息,请参阅svn help log
或书中的相关章节Version Control with Subversion
答案 2 :(得分:40)
我喜欢使用-v
来表示详细模式
它会为您提供提交ID,注释和所有受影响的文件。
svn log -v --limit 4
输出示例:
I added some migrations and deleted a test xml file ------------------------------------------------------------------------ r58687 | mr_x | 2012-04-02 15:31:31 +0200 (Mon, 02 Apr 2012) | 1 line Changed paths: A /trunk/java/App/src/database/support A /trunk/java/App/src/database/support/MIGRATE A /trunk/java/App/src/database/support/MIGRATE/remove_device.sql D /trunk/java/App/src/code/test.xml
答案 3 :(得分:11)
通过less
或其他寻呼机输出输出:
svn log | less
答案 4 :(得分:5)
要添加其他人所说的内容,您还可以在.bashrc或.bash_aliases文件中创建别名:
alias svnlog='svn log -l 30 | less'
或任何您想要的默认
答案 5 :(得分:4)
正如您已经注意到svn log
命令在没有任何参数的情况下运行时,显示与您指定的URL或运行命令的工作副本文件夹相关的所有日志消息。< / p>
您始终可以优化/限制svn log
结果:
svn log --limit NUM
将仅显示前NUM个修订版svn log --revision REV1(:REV2)
将显示REV1修订版或REV1 - REV2范围的日志消息,svn log --search
将显示与您指定的搜索模式匹配的修订版(该命令在Subversion 1.8和更新的客户端中可用)。你可以搜索
答案 6 :(得分:3)
但是svn log仍然是相反的顺序,即最近的条目首先输出,从我的终端顶部滚动并消失。我真的想看最后的条目,即排序顺序必须按时间顺序排列。执行此操作的唯一命令似乎是svn log -r 1:HEAD
,但在具有大约10000个条目的存储库上需要花费太长时间。我是这样说的:
按时间顺序显示最后10个subversion条目:
svn log -r $(svn log -l 10 | grep '^r[0-9]* ' | tail -1 | cut -f1 -d" "):HEAD
答案 7 :(得分:3)
如果有人正在查看这个旧问题,可以使用一个方便的命令查看自上次更新以来的更改:
svn log -r $(svn info | grep Revision | cut -f 2 -d ' '):HEAD -v
LE(感谢Gary的评论)
同样的事情,但更短,更合乎逻辑:
<强> svn log -r BASE:HEAD -v
强>
答案 8 :(得分:3)
此答案针对有关Subversion子命令选项的其他问题。对于每个可用的子命令(即add,log,status ...),您只需添加--help
选项即可显示可用于子命令的可用选项的完整列表以及如何使用它们的示例。以下代码段直接取自&#34;示例&#34;下的svn log --help
命令输出。部分:
Show the latest 5 log messages for the current working copy
directory and display paths changed in each commit:
svn log -l 5 -v