Answers:
况且什么伯特˚F说,很多命令,包括log
有-r
(或--revision
)选项。以下是一些使用此选项显示修订范围的实用示例:
要以升序列出所有内容:
svn log -r 1:HEAD
要以降序列出所有内容:
svn log -r HEAD:1
要以升序列出从当前已检出修订本的第十三到基础的所有内容:
svn log -r 13:BASE
要获取给定日期之间的所有内容:
svn log -r {2011-02-02}:{2011-02-03}
您可以将上述所有表达式与该--limit
选项结合使用,以便可以对打印的内容进行相当精细的控制。有关这些-r
表达式的更多信息,请参考《带Subversion的版本控制》中svn help log
的相关章节。
svn log .
可能只为我返回最早的修订版(同样使用svn log --limit 4 .
);但是如果我致电svn log -r HEAD:1 .
,那么我最终会列出所有条目...再次感谢-欢呼!
svn log
仅显示当前路径的更改历史记录。
我喜欢用 -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
通过管道输出less
或通过其他寻呼机:
svn log | less
正如您已经注意到的,svn log
不带任何参数的命令运行将显示与您指定的URL或运行命令的工作副本文件夹相关的所有日志消息。
您始终可以优化/限制svn log
结果:
svn log --limit NUM
将仅显示前NUM个版本,svn log --revision REV1(:REV2)
将显示REV1修订版或REV1-REV2范围的日志消息,svn log --search
将显示与您指定的搜索模式匹配的修订(该命令在Subversion 1.8和更高版本的客户端中可用)。您可以通过以下方式搜索
但是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
git log
。