有没有一个SVN命令可以告诉我用户在过去的X天内login了哪些内容?
“login”不是一个颠覆支持的行动。 如果你愿意的话,你可以通过查看提交来破解一些东西。
svn log | grep "^r.*<Date spec>"
哪里<Date spec>将会是你想要的date范围相匹配的东西。 因此, "^r.*Jun 2014"会匹配6月份的所有提交,而"^r.* 1[0-9] May 2014"匹配"^r.* 1[0-9] May 2014" 10日至19日之间的所有提交。 与过去十天相匹配的正则expression式每天都会有所不同,以致听起来很乱。
Subversion服务器也会有日志,根据你在转动之前保留这些日志的时间长短,你将能够看到任何用户在你拥有的任何日志中执行的所有操作。
这是一个使用mod_dav_svn和Apache日志的例子:
192.168.0.1 - ladadadada [12/May/2014:16:20:53 +0000] "OPTIONS /repo/trunk HTTP/1.1" 200 996 "-" "SVN/1.6.17 (r1128011) neon/0.28.6" 192.168.0.1 - ladadadada [12/May/2014:16:38:59 +0000] "PUT /repo/!svn/wrk/2de09554-002f-4c20-9305-308efcba7ded/trunk/application/config/functions.php HTTP/1.1" 204 149 "-" "SVN/1.6.17 (r1128011) neon/0.28.6" 192.168.0.1 - ladadadada [12/May/2014:16:39:00 +0000] "MERGE /repo/trunk/application/config HTTP/1.1" 200 676 "-" "SVN/1.6.17 (r1128011) neon/0.28.6" 192.168.0.1 - ladadadada [12/May/2014:16:39:00 +0000] "DELETE /repo/!svn/act/2de09554-002f-4c20-9305-308efcba7ded HTTP/1.1" 204 149 "-" "SVN/1.6.17 (r1128011) neon/0.28.6"
用户是第三个字段,正在执行的操作是HTTP请求的方法。 这意味着您可以看到svn update和svn log等操作以及提交。 如果你每天轮换你的日志,那么过去十天只是简单地通过最近的十个日志文件。