2016-08-21 7 views
2

Я хочу выполнить поиск в моем Mercurial репозитории для фиксации с определенным сообщением журнала (например, «merge») с использованием TortoiseHg. Это мой репозиторий без поиска:TortoiseHg: Не показывать предков в результатах поиска по ключевым словам

enter image description here

И когда я ищу «сливаться» Я получаю это:

enter image description here

Так что похоже поиск находит первый матч и отображает всех своих предков. Фильтрация не-соответствием изменения наборов оказалась на:

enter image description here

Я только хочу, чтобы увидеть соответствие предков. Это работает для моего коллеги, но мы не могли найти, что отличается от нашей среды. Мы оба используем версию 3.9 для Windows 10 x64 с теми же расширениями.

Вот еще один пример поиска для "работы!":

enter image description here

И используя ключевое слово именно:

enter image description here

и фильтрация по автору:

enter image description here

Он просто всегда находит первый матч и показывает все предки ...

ответ

0

Я удалил TortoiseHg, дель все его файлы с компьютера (AppData, конфигурации и т. д.) и переустановлены с нуля, и теперь это работает. Поскольку я уже пытался переустановить месяц назад, я думаю, что очистка всех файлов помогла.

0

Так что похоже поиск находит первое совпадение и отображает все его предки

Нет, вы пропустите здесь , Простая текстура TEXT в поиске означает (внутренне) с использованием предиката keyword() в revset, hg log -T {rev}^M -r keyword('merge') в вашем случае. Но:

"keyword(string)" 
    Search commit message, user name, and names of changed files for 
    string. The match is case-insensitive. 

Поиск более широк, чем вы ожидаете. Просто сравните с моей репо, есть «слияние» только часть лог-сообщения: появились только две прямые родственники в revset, потому что они оба встретились условия

enter image description here

Для «сливать» только в журнале matching() может быть лучше, но если вы действительно хотите mergesetsmerge() является естественный путь (тм), и окончательный revset для mergests и это родители могут быть

merge() or parents(merge()) 
+0

Я только дал «слияние» в качестве примера для строки поиска. Я на самом деле искал что-то еще. Но я все еще не понимаю, что вы говорите.Зачем мне получать ревизию с сообщением commit «Works!». или «добавить отпечатки для отладки». Ваш пример имеет смысл, потому что у вас есть слово «merge» в обеих ревизиях, к которым вы кружили ... Большинство моих ревизий не имеют «слияния» в них. – Dina

+0

@Dina - потому что «Поиск сообщения фиксации, имя пользователя и имена измененных файлов ...» - проверьте эти изменения для пересечений. Или покажите 'log -v' для этой части репо. У меня есть файл «Seeker.txt» в репо, ключевое слово «see» может вызвать неожиданный результат, если я буду думать только abt log-message –

+0

В другом месте нет «слияния». Более того, как я уже сказал, я нахожу поиск более длинной фразы, * и * это работает для коллеги в том же хранилище! – Dina

 Смежные вопросы

  • Нет связанных вопросов^_^