在SVN中查找使用特定注释签入的文件

在SVN中查找使用特定注释签入的文件,svn,version-control,tortoisesvn,checkin,Svn,Version Control,Tortoisesvn,Checkin,在将源代码签入SVN时,我会使用特定的注释。 我想检索为该评论签入的文件列表。 请注意,我不知道修订号。我只知道我登记时所反对的评论 我在尝试各种各样的东西 svn log --verbose 请建议。您可以尝试以下脚本。输入参数为搜索词: #!/bin/sh searchWord=$1 if [ ! $searchWord ]; then echo "Usage ..." exit fi IFS=$'\n' commitRecord='' dumpCommit=fal

在将源代码签入SVN时,我会使用特定的注释。 我想检索为该评论签入的文件列表。 请注意,我不知道修订号。我只知道我登记时所反对的评论

我在尝试各种各样的东西

svn log --verbose

请建议。

您可以尝试以下脚本。输入参数为搜索词:

#!/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

如果您至少在使用Subversion 1.8.0(您应该在2013年6月发布),那么您可以使用。从文档中,此命令:

筛选日志消息以仅显示与搜索模式ARG匹配的消息。仅当提供的搜索模式与任何作者、日期、日志消息文本匹配时(除非使用了
--quiet
),或者如果还提供了
--verbose
选项,则显示日志消息

该命令支持
*
(全局语法)和字符类(
[abc]

请注意,这不会在存储库中执行真正的搜索,而是对返回的日志条目进行筛选。因此,如果您提供修订范围或使用
--limit
,则与您的搜索匹配的修订将被忽略