Как я могу быстро найти свой код с помощью Windows? - PullRequest
0 голосов
/ 24 марта 2011

У меня та же проблема, что и в в этом вопросе , кроме Windows.Наш продукт имеет кодовую базу более 100 МБ, и поиск там занимает очень много времени (несколько минут).Приятно, когда вы можете сузить поиск до определенной подпапки, но это не всегда возможно.

Мне было интересно, есть ли какой-нибудь инструмент, который сделает это быстрее, возможно, путем индексации.Точность имеет первостепенное значение, если подстрока где-то существует, ее необходимо найти, даже если файл не проиндексирован или индекс устарел.Также было бы идеально, если бы при поиске игнорировались папки .svn.

Если это не удастся, мне стало интересно, смогу ли я сам сделать что-то подобное.Может быть, есть готовый механизм индексации для таких задач?Мне было интересно узнать о службе индексирования Windows (или как она называется в наши дни), но до сих пор мой опыт работы с ней (стандартное средство поиска файлов Windows) был довольно удручающим, поскольку в ней часто отсутствовали файлы, которые были прямо перед ее носом..

1 Ответ

0 голосов
/ 27 марта 2011

Да, я также видел пропущенные файлы службы индексирования окон, но я не проверял КБ или пользовательские форумы для объяснений. Я рад, что это подтвердило, что это не только я; -)!

Существует множество программ индексирования файлов, я был бы удивлен, если бы вы не смогли найти ту, которая соответствует вашим потребностям (хотя, см. Позже).

Вот несколько вещей, которые следует учитывать:

Если ваша команда использует IDE, разве нет функции индекса / плагина? (ни один из SVN не предоставляет возможности индексирования?). Также , добавьте несколько тегов к вашему вопросу, чтобы другие разработчики Windows увидели это, используя ту же среду разработки, что и вы.

В предоставленной вами ссылке SO упоминается несколько опций: slocate, rlocate, и я обнаружил mlocate. Страница Википедии для Slocate говорит Locate32 для Windows Аналог GNU locate с графическим интерфейсом, выпущенный по лицензии GNU который, кажется, отвечает вашим основным требованиям. Глядя на снимки экрана с интерфейсом с несколькими вкладками (один с надписью «Дополнительно»), я надеюсь, что вы можете исключить SVN (по крайней мере, из результатов, возможно из того, что проиндексировано).

Ваше требование для

если подстрока где-то существует, она должен быть найден, даже если файл не проиндексирован или индекс устарел.

кажется противоречивым. Что касается требования подстроки, я вижу, что многие программы индексирования игнорируют элементы синтаксиса c lang ({([])} и т. Д.), И, например, «then» либо удаляется, потому что оно считается словом-шумом, либо получает сводится к «и», а затем удаляется, потому что это слово «шум».

Чтобы добраться до «должен быть найден», и действительно , убедитесь, что вам нужно разработать набор тестов, чтобы увидеть, что программа индекса делает для всего, что является угловым случаем. (Для базы кода 100 МБ, не может быть и речи, тем более что вы рассматриваете возможность создания собственной).

Наконец, «даже если файл не проиндексирован ...». Ну, вы либо используете индекс, либо не используете (очевидно). К сожалению, по вашему требованию, хотя rlocate постоянно ищет изменения, slocate (в Unix), похоже, этого не делает. Вероятно, если вы прочитаете / проверьте документы или форумы пользователей на locate32, вы получите ответы, которые вам нужны.

Rlocate даст вам то, что вам нужно, но со страницы rlocate 'rlocate будет работать только в Linux с версией 2.6.'. Похоже, что у mlocate нет только порта Windows.

Наконец, я нашел ссылку, которая интересна для mlocate: mlocate vs rlocate . Это кеш Google, потому что redhat.com сказал «недоступен».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...