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

时间:2015-08-07 11:00:38

标签: svn version-control tortoisesvn checkin

我在检查我的SVN的来源时使用了特定的注释。 我想检索为该评论签入的文件列表。 请注意我不知道修订号。我只知道我签到的评论。

我正在尝试各种各样的事情

svn log --verbose

请建议。

2 个答案:

答案 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