我想在subversion上运行查询以查找特定用户在正常工作时间(上午9点到下午5点)之外执行的所有签到是否有办法执行此操作?
答案 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();