我在检查我的SVN的来源时使用了特定的注释。 我想检索为该评论签入的文件列表。 请注意我不知道修订号。我只知道我签到的评论。
我正在尝试各种各样的事情
svn log --verbose
请建议。
答案 0 :(得分:2)
如果你至少使用Subversion 1.8.0(你应该是,它于2013年6月发布),那么你可以使用svn log --search
。从文档中,这个命令:
过滤日志消息以仅显示与搜索模式ARG匹配的消息。仅当提供的搜索模式与作者,日期,日志消息文本(除非使用
--quiet
)匹配时,或者如果还提供了--verbose
选项,则显示更改的路径时,才会显示日志消息。
该命令支持*
和?
(glob语法)和字符类([abc]
)。
请注意,这并不是通过存储库执行实际搜索,而是对返回的日志条目进行过滤。因此,如果您提供修订范围或使用--limit
,则将省略与您的搜索匹配的修订。
答案 1 :(得分:0)
您可以尝试以下脚本。输入参数是搜索词:
#!/bin/sh
searchWord=$1
if [ ! $searchWord ]; then
echo "Usage ..."
exit
fi
IFS=$'\n'
commitRecord=''
dumpCommit=false
lineCounter=0
for line in `svn log --verbose`; do
lineCounter=$((lineCounter + 1))
commitRecord[$lineCounter]=$line
if [ ${line:1:5} == '-----' ]; then
if $dumpCommit ; then
echo $line
fi
dumpCommit=false
unset commitRecord
fi
if echo $line | grep -qi $searchWord ; then
for line in ${commitRecord[*]}; do
echo $line
done
dumpCommit=true
continue
fi
if $dumpCommit ; then
echo $line
fi
done