Как искать имя файла в репозитории Mercurial? - PullRequest
2 голосов
/ 14 октября 2019

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

Я пробовал hg grep <filename>, но, похоже, только файлы , содержащие"filename».

Я также посмотрел на Mercurial - определить, где файл был удален? , но это действительно поможет мне, если файл был создан в другой ветке. Человек, задающий этот вопрос, предложил hg log myfile -v, что может сработать, но это не так. Я знаю, что где-то в моем репо файл существует, потому что я получаю что-то обратно, когда делаю find .hg | grep <filename>, но это не говорит мне (по крайней мере, неясно), что фиксирует / разветвляет.

Ответы [ 2 ]

3 голосов
/ 15 октября 2019
  1. Вы должны прочитать hg help patterns и, возможно, hg help filesets, чтобы написать правильный шаблон для файла (скорее всего, вы будете довольны только шаблоном)
  2. Если файл существует сейчас в рабочем каталоге (то есть был добавлен, а не удален позже), вы найдете его с hg file <PATTERN> и будет определять полный путь по выводу, см. выше (используемый шаблон)

>hg file **/test-extra.t tests\test-extra.t

и вызовите hg log с полным именем файла

В любом случае (hg file вернул 0 для удаленного файла или файла, все еще находящегося в WD), вы можете вызвать hg log <FILESET> и получить историю тоже. Журнал для существующего будет слишком длинным, покажет удаленное уникальное имя файла образца

>hg log set:**/dulwich/tests/__init__.py -Tcompact 223 0b6c08800d16 2009-07-23 08:48 +0100 a delete the dulwich fork we have
2 c43c02cc803a 2009-04-22 16:59 -0700 schacon added dulwich library and got the script to call it for clone

Если ваш набор будет слишком широким и (может) включать файлы с одинаковыми именами в разные папки, вы должны проверить имена файлов, вызвав журнал с более подробной информацией о файлах, например, с -Tstatus
0 голосов
/ 15 октября 2019
hg log 'glob:**/<filename>` -Tstatus

, кажется, делает эту работу. Он не дает мне коммиты, содержащие <filename>, но он дает коммиты (и их ответвления) с участием filename.

Благодарю ответ Ленивого Барсука за указание на это.

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