How do you see recent SVN log entries?
键入
也许SVN家伙在想我想将输出提供给另一个程序。 但是,如果是这种情况,则对程序进行更详细的调用(而不是终端用户)会更有意义。
无论如何,如何查看最近的活动(例如最近的5或10个条目)以了解发生了什么变化?
1 2 3 | svn log --limit 4 svn log -l 4 |
仅最后4个条目
除了Bert F所说的以外,许多命令(包括
要以升序列出所有内容:
1 | svn log -r 1:HEAD |
要以降序列出所有内容:
1 | svn log -r HEAD:1 |
要以升序列出从当前已检出修订本的第十三到基础的所有内容:
1 | svn log -r 13:BASE |
要获取给定日期之间的所有内容:
1 | svn log -r {2011-02-02}:{2011-02-03} |
您可以将上述所有表达式与
我喜欢将
它会为您提供提交ID,注释和所有受影响的文件。
1 | svn log -v --limit 4 |
输出示例:
1
2
3
4
5
6
7
8 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
通过
1 | svn log | less |
如果有人在看这个老问题,可以使用一个方便的命令查看自上次更新以来的更改:
LE(感谢加里的评论)
同样的东西,但更短,更合乎逻辑:
要添加其他人所说的内容,您还可以在.bashrc或.bash_aliases文件中创建一个别名:
1 | alias svnlog='svn log -l 30 | less' |
或任何您想要的默认值
该答案针对与Subversion子命令选项有关的其他问题。对于每个可用的子命令(即添加,日志,状态...),您只需添加
1 2 3 | 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 --limit NUM 将仅显示前NUM个版本, -
svn log --revision REV1(:REV2) 将显示REV1修订版或REV1-REV2范围的日志消息, -
svn log --search 将显示与您指定的搜索模式匹配的修订版(该命令在Subversion 1.8和更高版本的客户端中可用)。您可以通过以下方式搜索- 版本的作者(即提交者的用户名),
- 提交修订的日期,
- 修订注释文本(日志消息),
- 修订中更改的路径列表。
但是svn log仍然是相反的顺序,即最新的条目首先输出,从我的终端顶部滚动走了。我真的很想查看最后一个条目,即排序顺序必须是按时间顺序排列的。唯一执行此操作的命令似乎是
按时间顺序显示最后10个Subversion条目:
1 | svn log -r $(svn log -l 10 | grep '^r[0-9]* ' | tail -1 | cut -f1 -d""):HEAD |