如何查看我在特定日期生成的所有 svn日志?
我在网上搜索过此内容,但未能找到解决方案。
答案 0 :(得分:19)
要在10日显示用户名条目:
svn log -r '{2010-12-10}:{2010-12-11}'|sed -n '1p; 2,/^-/d; /username/,/^-/p'
SVN命令在该日期范围内获取提交
sed命令的细分:
-n
- 不要自动打印。1p
- 打印第一行(---标题)。2,/^-/d;
- 删除从第二个到结束---标题的所有内容。这将删除第一个条目,即IIRC是当天午夜的最近一次提交(即它实际上不在范围内,过去可能很长)。/username/,/^-/p
- 打印从该用户名开始的所有内容(与您感兴趣的用户匹配的正则表达式)到结束---标题(此操作重复)答案 1 :(得分:4)
假设您使用的是Linux系统,可以执行以下操作:
svn log -r {YYYY-MM-DD}:{YYYY-MM-DD} | grep username | cut -d " " -f 1 | tail -n +2 | while read revision; do svn log -r $revision; done
这样做是运行svn log来获取给定日期的所有日志,然后切断输出,使其只是一个修订号列表。 [编辑:添加tail -n +2
以切断第一个修订 - 正如@Matthew所提到的那样,第一行将是{that_day}
之前的最新版本。然后while循环遍历每行修订号,通过它到svn log
。
另外,请记住{YYYY-MM-DD}指的是那天 start 的午夜,所以要运行一整天,你应该为{that_day}:{the_following_day}
运行它。
希望有所帮助!
(另外,对于之前关于--username
的混淆感到抱歉。我之前从未使用它,因为我的本地svn只有一个用户(我),所以看起来像一样工作,当它真的不是。)
答案 2 :(得分:1)
svn log --verbose --search user_name --revision {YYYY-MM-DD}:{YYYY-MM-DD}
适用于任何平台
答案 3 :(得分:0)
如果您使用的是Linux,获取完整日期日志的最佳解决方案如下:
svn log -r {start date}:{end date} -v | sed -n ‘/username/,/—–$/ p’
如果您想根据用户名在给定的日期范围内检索SVN日志,那么您需要使用svn log -r {startDate}:{endDate}
通过sed
命令管道输入用户名。