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

获取用户的svn日志';在特定日期的活动,svn,Svn,如何查看我在特定日期制作的所有svn日志 我在网上搜索过这个问题,但没有找到解决方案。要在10日显示用户名条目: svn log -r '{2010-12-10}:{2010-12-11}'|sed -n '1p; 2,/^-/d; /username/,/^-/p' SVN命令获取该日期范围内的提交 sed命令的细分: -n-不自动打印 1p-打印第一行(标题) 2,/^-/d-删除从第二个到结束---标题的所有内容。这将删除第一个条目,IIRC是截至一天开始午夜的最新提交(即,它实际上不

如何查看我在特定日期制作的所有svn日志


我在网上搜索过这个问题,但没有找到解决方案。

要在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
    -打印从该用户名(与您感兴趣的用户相匹配的正则表达式)到结束---标题的所有内容(此操作重复进行)

假设您在Linux系统上,您可以执行以下操作:

svn log-r{YYYY-MM-DD}:{YYYY-MM-DD}grep username | cut-d”“-f1 | tail-n+2 |在阅读修订时;执行svn日志-r$修订;完成

这样做的目的是运行svnlog以获取给定日期的所有日志,然后剪切输出,使其仅为修订号列表。[编辑:添加了
tail-n+2
以切断第一个修订版-正如@Matthew提到的,第一行将是
{that_day}
]之前的最新修订版。while循环然后迭代每行修订号,将其传递给
svn log

另外,请记住,{YYYY-MM-DD}指的是当天开始时的午夜,因此要运行一整天,您应该为
{that_day}:{the_follow_day}
运行它

希望有帮助


(另外,对于之前关于
--username
的混淆,我也很抱歉。我以前从未使用过它,而且因为我的本地svn只有一个用户(我),所以它看起来像是工作了,但实际上没有。)

如果您使用的是linux,那么获取完整日期日志的最佳解决方案如下所示:

svn log -r {start date}:{end date} -v | sed -n ‘/username/,/—–$/ p’
如果要根据用户名在给定日期范围内检索SVN日志,则需要使用
SVN log-r{startDate}:{endDate}
,该命令通过
sed
命令传送到用户名

svn log --verbose --search user_name --revision {YYYY-MM-DD}:{YYYY-MM-DD}

可以在任何平台上工作

如果您在Windows上,TortoiseSVN允许您通过(除其他外)用户名过滤其日志输出。如果您在Unix上,我毫不怀疑有一种方法可以为
svn log-rNNNNN
中的每个修订号编写一个脚本,在
svn log-revision{startdate}:{enddate}grep ajitam
中执行
svn log-rNNNNN
,尽管我在shell脚本编写方面太弱了。@pyfunc它适合我。“grep”的问题是,你只得到了每个日志的第一行谁投了反对票?它起作用了。我知道,因为我(发帖前)和ajitam都对它进行了测试。它可能需要使用GNU。@ajitam:没关系。我的理解是基于你提供的。我肯定你不想要一个千篇一律的解决方案。因为你没有提供任何细节。我知道您希望在特定日期找到提交。这就是我提供的。在此基础上再接再厉就足够了。请参阅代理商的答案。在提供部分答案时,我得到了两张反对票。非常有趣。马修·弗莱森的回答甚至对我都不起作用。所以我想grep和rest需要专门构建。AgentConntrum的回答更一般,也符合我的建议。@Matthew:FYI,你的解决方案对我也适用(虽然我的解决方案更容易理解,当然不是冒犯)@py,你的回购协议怎么不正确?我使用的是svn 1.6.5和GNU sed 4.2.1。不幸的是,这与pyfunc的答案的日期问题相同。它包括在当天之前提交
。另外,它的效率有些低,因为每次调用svn日志都需要一个进程、一个网络连接,还可能需要一个密码提示。@Matthew:感谢您指出“之前最后一次提交”的问题。我已经更新了我的解决方案。您完全正确,这将通过网络或使用未缓存的凭据进行访问。@Agent,+1,谢谢您的更新。你是对的,尽管存在性能问题,但它更具可读性(特别是在不熟悉sed的情况下)。@Matthew:如果它是在某个脚本中,并且你记录了它,那么在性能方面,你的脚本要高得多(例如,我不想针对svn项目本身的回购协议运行它)。如果它只是在一个本地网络上,并且你没有进行太多的修改,那么我的“对于政府工作来说已经足够好了”。+1用于在Subversion的日志显示中提到一天开始的“功能”。