Поиск нескольких слов в Subversion - PullRequest
1 голос
/ 10 марта 2012

Скажем, у меня есть URL для каталога subversion. Я в основном просматриваю его, используя tortoiseSVN на Windows.

Как выполнить поиск содержимого файлов в этом каталоге (и его подпапках) по 3 отдельным словам (каждое из которых представляет собой отдельный поиск):

е

foo
bar
blah

И затем получить результаты, для которых файлы содержат это слово. т.е.

foo (23 hits)
my.xml
the.txt

bar (9 hits)
other.txt

blah (178 hits)
new.xml
fake.txt
old.xml
other.xml

1 Ответ

3 голосов
/ 10 марта 2012

Я не знаю нативного решения того, что вы хотите.

Я бы сам сделал простой пакетный файл. Это не даст вам ТОЧНО того, о чем вы просили, но довольно близко.

Кроме того, можно выполнить поиск по запросу «baregrep» и посмотреть, подходит ли он вам (я не использовал его).

Вот что я бы сделал:

1) Установить Cygwin

Это дает вам приличный grep (среди множества других вещей, которые вы можете игнорировать, если хотите). grep - действительно хороший инструмент для поиска вещей в текстовых файлах (например, в коде). Windows XP найти просто не до этого. http://cygwin.com/index.html

2) определите команду grep, которая вам понадобится

Что это:

grep -r -i --include "*" --exclude-dir ".svn" "foo" . 

Сломано:

-r  == recursive
-i  == ignore case (remove this if you want case sensitive)
--include "*"     == include all files
--exclude-dir ".svn" == tells grep to ignore everything in the hidden subversion folders
"foo"    == what we're looking for
.        == start from the current directory

Таким образом, эта команда говорит: «ищите во всех файлах под этой папкой, но не в папках .svn для« foo »»

Вставьте это в пакетный файл (например, называемый findsource.bat) где-нибудь на пути. Для этого вам нужно заменить «foo» на «% 1»

grep -r -i --include "*" --exclude-dir ".svn" "%1" . 

Лично я бы оставил это там.

Затем вы можете использовать свой командный файл из командной строки.
CD в ​​корень вашего исходного дерева.

findsource foo

Если вам нужно количество хитов, вы можете передать его другому инструменту, поставляемому с Cygwin - wc

findsource foo | wc -l 
...