获取用户在特定日期的活动的svn日志

时间:2010-12-10 08:57:54

标签: svn

如何查看我在特定日期生成的所有 svn日志?

我在网上搜索过此内容,但未能找到解决方案。

4 个答案:

答案 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命令管道输入用户名。