我想检查我今天提交了哪些文件
我努力了
svn log | grep 'name' | grep '2013-04-01'
但它削减了我的评论和我提交的文件
感谢所有答案
我搜索类似的东西svn log -commited_by me
最后我做到了
svn log -v `svn log -q -r {2013-04-01}:{2013-04-02} | grep myname | cut -d"|" -f1 | sed 's/r/\-r/g'`
我觉得很长:^(
我想检查我今天提交了哪些文件
我努力了
svn log | grep 'name' | grep '2013-04-01'
但它削减了我的评论和我提交的文件
感谢所有答案
我搜索类似的东西svn log -commited_by me
最后我做到了
svn log -v `svn log -q -r {2013-04-01}:{2013-04-02} | grep myname | cut -d"|" -f1 | sed 's/r/\-r/g'`
我觉得很长:^(
您可以指定一个日期svn log
,这将为您提供该日期的最新修订。您还可以使用范围内的日期,例如,您可以使用:
svn log -r {2013-03-26}:{"2013-03-26 23:59"}
您应该注意修订是“该日期的最新修订”,因此第一个修订是在前一天。(在题为“Subversion a Day Early?”的文档中有一个注释)因此,上面的例子可以很容易地写成:
svn log -r {2013-03-26}:{2013-03-27}
现在您在原始问题中提到“今天”,因此您可以构建一个自动输入日期的命令。现在该date
命令可以为您获取今天的日期:
date "+%Y-%m-%d"
和明天的约会
date -v+1d "+%Y-%m-%d"
所以你可以结合这些方法:
svn log -r {`date "+%Y-%m-%d"`}:{`date -v+1d "+%Y-%m-%d"`}
svn help log
之后(如果您想从“简单尝试”尝试中排除第一个修订版,则借助一些代码行以获得修订版范围)您可以获得所需的结果。
有可能:
svn log -q -v -r BEGIN:END
svn diff --summarize -r BEGIN:END
(diff 不包含“噪音”,只有 a/ 没有重复的文件列表 b/ 每个受影响文件的状态指示器)
@borrible 的回答涵盖了日期范围,@Lazy Badger 的回答涵盖了文件列表,所以我将介绍问题的其余部分——将结果限制在您的范围内。
您可以使用以下--search
选项进行过滤:
作者、日期、日志消息文本(除非使用 --quiet),或者,如果还提供了 --verbose 选项,则更改路径。
假设你的 svn 用户名是“Jing”,我们可以把所有的答案放在一起得到:
svn log --quiet --verbose --revision {`date "+%Y-%m-%d"`}:{`date -v+1d "+%Y-%m-%d"`} --search Jing path/to/repo/root
在哪里--quiet
抑制提交消息--verbose
并使文件路径出现。您必须包含存储库根目录的路径(在磁盘或 URL 上)以包含所有更改,而不仅仅是在当前文件夹中。
您将获得如下所示的结果:
------------------------------------------------------------------------
r468951 | Jing | 2021-06-23 13:16:03 -0700 (Wed, 23 Jun 2021)
Changed paths:
M /project/filter.py
------------------------------------------------------------------------
r468952 | Jing | 2021-06-23 13:19:34 -0700 (Wed, 23 Jun 2021)
Changed paths:
M /project/filter.py
M /project/results.py
------------------------------------------------------------------------
要查看唯一文件路径的列表,请添加| grep "^ " | sort -u
到命令。
不幸的是svn 的过滤是有限的,所以如果你的用户名也出现在 filepaths 中,你将不得不使用类似pysvn的东西来过滤结果。
另外,请注意,如果您使用本地路径,则只会包含您已同步的结果。如果您想要本地还没有的结果,则需要传递 url。