在 SVN 中查找带有特定注释的签入文件
Find files checked in with a particular comment in SVN
我在将源签入我的 SVN 时使用了特定的注释。
我想检索为该评论签入的文件列表。
请注意我不知道修订号。我只知道我签到的评论。
我正在用
尝试各种事情
svn log --verbose
请推荐。
您可以尝试以下脚本。输入参数为搜索词:
#!/bin/sh
searchWord=
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
如果您至少使用 Subversion 1.8.0(您应该是,它于 2013 年 6 月发布),那么您可以使用 svn log --search
。从文档中,这个命令:
Filters log messages to show only those that match the search pattern ARG. Log messages are displayed only if the provided search pattern matches any of the author, date, log message text (unless --quiet
is used), or, if the --verbose
option is also provided, a changed path.
该命令支持*
和?
(glob语法)和字符类([abc]
)。
请注意,这不会在存储库中执行真正的搜索,而是对返回的日志条目进行筛选。因此,如果您提供修订范围或使用 --limit
,则与您的搜索匹配的修订将被忽略。
我在将源签入我的 SVN 时使用了特定的注释。 我想检索为该评论签入的文件列表。 请注意我不知道修订号。我只知道我签到的评论。
我正在用
尝试各种事情svn log --verbose
请推荐。
您可以尝试以下脚本。输入参数为搜索词:
#!/bin/sh
searchWord=
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
如果您至少使用 Subversion 1.8.0(您应该是,它于 2013 年 6 月发布),那么您可以使用 svn log --search
。从文档中,这个命令:
Filters log messages to show only those that match the search pattern ARG. Log messages are displayed only if the provided search pattern matches any of the author, date, log message text (unless
--quiet
is used), or, if the--verbose
option is also provided, a changed path.
该命令支持*
和?
(glob语法)和字符类([abc]
)。
请注意,这不会在存储库中执行真正的搜索,而是对返回的日志条目进行筛选。因此,如果您提供修订范围或使用 --limit
,则与您的搜索匹配的修订将被忽略。