В Mercurial, как я могу найти наборы изменений, которые содержат строку? - PullRequest
12 голосов
/ 15 марта 2012

Допустим, у меня есть следующие ревизии:

rev 1:
+ Dim Foo as integer

rev 2:
+ I like big butts, I cannot lie

rev 3
- Dim Foo as integer

Foo в рев 1 и 2 и удален из трех.Какую команду можно выдать, которая будет возвращать все наборы изменений, которые Foo были добавлены или удалены?

В идеале я хотел бы также сделать это с toroisehg

1 Ответ

19 голосов
/ 15 марта 2012

Вы можете использовать команду grep:

hg grep --all Foo

Для решения проблем Lazy Badger в комментариях.

$ hg init
$ echo "Dim Foo as integer" > test 
$ hg commit -m "1"
$ echo "I like big butts, I cannot lie" > test 
$ hg commit -m "2"
$ echo "Dim Foo as integer" > test 
$ hg commit -m "3"
$ hg grep --all Foo

Вывод команды grep:

test:2:+:Dim Foo as integer
test:1:-:Dim Foo as integer
test:0:+:Dim Foo as integer

Это означает, что Foo был впервые замечен в тесте файла в ревизии 0 (знак + говорит нам об этом), затем он исчез в ревизии 1 (знаки -) и снова появился в ревизии 2 .

Я не знаю, является ли это тем, что вы хотите, но это ясно указывает на ревизию, в которую было добавлено или удалено искомое слово.

...