您可以查询subversion以查找特定作者的非工作时间的所有签到

时间:2010-12-16 13:42:53

标签: svn

我想在subversion上运行查询以查找特定用户在正常工作时间(上午9点到下午5点)之外执行的所有签到是否有办法执行此操作?

3 个答案:

答案 0 :(得分:4)

您可以从命令行获取subversion历史记录als xml:

svn log <url> --xml

然后,您可以编写一个脚本来解析输出并应用搜索条件......

答案 1 :(得分:2)

你可以这样做并一次指定一个小时

 svn log | sed -n '/ XX:/,/-----$/ p'

将XX替换为您想要的时间。 22。

修改 要输出所需的所有小时数,您可以执行一个脚本,每小时启动一次该命令,并将其放入日志文件中。

 #!/bin/sh
 svn log | sed -n '/ 19:/,/-----$/ p' >> svn.log
 svn log | sed -n '/ 20:/,/-----$/ p' >> svn.log
 svn log | sed -n '/ 21:/,/-----$/ p' >> svn.log
 svn log | sed -n '/ 22:/,/-----$/ p' >> svn.log
 ...

答案 2 :(得分:1)

我接受了ChrisK的建议,并使用以下语法创建了一个XML文件......

svn log <url> --xml <path>

然后在LinqPad C#语句中使用以下查询来识别所有非工作时间的签到....

var xml = XElement.Load (@"c:\\work\\log.xml");

var query =
  from logEntry in xml.Elements()
  from myDate in logEntry.Elements()
  //from author in logEntry.Elements() //These lines get a specific author
  //where author.Value == "digiguru"
  //where author.Name == "author"
  where myDate.Name == "date"
  where !(DateTime.Parse(myDate.Value).Hour >= 9 && DateTime.Parse(myDate.Value).Hour <= 17)
  select logEntry;

query.Dump();