Как вы ищете текст описания списка изменений в Perforce?
иногда я обнаруживаю, что хочу искать текст описаний списка изменений в Perforce. Там, кажется, не быть способ сделать это в P4V. Я могу сделать это путем перенаправления вывода команды изменения в файл...
p4 changes -l > p4changes.txt
...(переключатель-l говорит ему сбросить полный текст описаний списка изменений), а затем искать файл, но это довольно громоздко. Кто-нибудь нашел лучший способ?
8 ответов:
Если на панели представленный список изменений есть фокус, CTRL+F позволяет выполнять произвольный текстовый поиск, который включает описания списка изменений.
единственное ограничение заключается в том, что он ищет только те списки изменений, которые были извлечены с сервера, поэтому вам может потребоваться увеличить полученное число. Это делается с помощью параметра" количество списков изменений, заданий, сопоставлений ветвей или меток для извлечения за один раз", который можно найти, перейдя к редактированию->Настройки->Данные сервера.
Я использую p4sql и выполнить запрос на базе данных "изменения". Вот это схема базы данных perforce
запрос выглядит примерно так (непроверенных)
select change from changes where description like '%text%' and p4options = 'longdesc'
изменить: добавлены p4options для возврата более 31 символов в описании.
p4 changes -L | grep -B 3 searchstring
-B 3
означает показать 3 строки перед соответствующей строкой, должно быть достаточно, чтобы показать идентификатор изменения с 2 комментариями строки, но вы можете изменить его по мере необходимости.
вот версия Powershell ответа Павла "grep". Опять же, он ищет указанную строку в описании изменения и возвращает 3 строки перед ним, чтобы включить идентификатор изменения:
p4 changes -L | select-string "search string" -Context (3,0)
зачем перенаправлять в файл, Когда вы можете передать вывод через
less
и использовать 'ы?p4 changes -l | less
и нажмите клавишу / запрос в поисковую строку. Потом,n перейдем к следующему матчу, и Shift+n перейдем к предыдущему.
реализация
less
для Windows доступен в составе UnxUtils.
использование p4sql-это действительно единственный способ эффективно делать то, что вы хотите. Я не знаю другого пути. Преимущество, конечно, заключается в том, что вы можете использовать инструкции select для ограничения диапазона значений списка изменений (через дату, пользователя и т. д.). Ваш метод будет работать, но станет громоздким очень быстро, как вы создаете больше списков изменений. Вы можете ограничить область действия команды changes, но вы не получите гибкость p4sql.
Эдди на Играх опубликовал свой волевой Поиск списка изменений 0.1 at http://www.eddiescholtz.com/blog/archives/130
но мне нравится использовать мой любимый текстовый редактор с простым: Р4 изменения -S, представленного //прог - /материал/основной/... >температура.txt
Если вы все еще любите свою командную строку, вы можете написать небольшой скрипт perl, который:
- изменяет разделитель записей $ / на двойная новая строка "\n\n", поэтому она фильтрует вход в полные записи ztagged P4 выход.
- сканирование этот.^/' .. desc/..//' расстаться регулярные выражения из аргументов.
использование будет что-то вроде 'P4-ztag changes-l | yourperlfilter.pl searchterm1 searchterm2'
Если бы это работало нормально, вы могли бы интегрируйте его в меню инструментов p4win.