6

Я большой поклонник Git Grep. Существует ли эквивалент в Subversion?

3 ответа3

1

Хотя это и не идеальное решение, я использую следующее, чтобы просмотреть ревизии определенного файла:

for rev in `svn log FILE_TO_SEARCH | grep '^r[0-9][0-9]* ' | cut -f1 -d" "`; do svn cat -$rev FILE_TO_SEARCH 2>/dev/null | grep -q PATTERN_TO_FIND && echo $rev;done

Вывод представляет собой список номеров ревизий этого файла, которые содержат строку.

1

Как ответили в Исключить .svn каталоги из grep:

grep --exclude-dir=".svn"

Эта функция svngrep обеспечивает базовую функциональность, аналогичную git grep:

svngrep() { grep  --color=always --exclude-dir=".svn" -r "$1" . | less -R; }

вставить в свой .bashrc .

0

Svn может перечислить файлы, которые он имеет под контролем исходного кода, и вы можете передать список файлов в командную строку grep с помощью xargs. Чтобы обрабатывать имена файлов с пробелами, вы добавляете опцию " -d '\n' " в xargs. Чтобы молча пропускать каталоги, упомянутые svn, вы используете опцию " -d skip " для grep. Возможно, вы захотите использовать egrep вместо grep, который имеет более регулярный синтаксис (больше похожий на perl).

svn ls -R | xargs -d '\n' grep -d skip thingtogrepfor

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .