Pytanie Rtęciowy odpowiednik git grep


Czy istnieje odpowiednik git grep w Mercurial? To znaczy, szukaj tekstu tylko w kopii roboczej, w plikach śledzonych przez Mercurial. (hg grep przeszukuje historię repozytorium.)


11
2017-12-12 15:01


pochodzenie


grep -r jest najbliższy mi znany (lub podobny) ack itp.). - Etan Reisner
Tak, niestety, obejmuje to wszystkie pliki, które nie są śledzone przez Mercurial (co robi git grep wygodna). - Matt R
ack unika .hg pliki, ale tak. Możesz uzyskać listę śledzonych plików hg i przekazać je do grep wyraźnie (zakładając, że nie masz zbyt wielu). - Etan Reisner


Odpowiedzi:


hg files "set:grep(regex_goes_here) and not binary()"

Widzieć dokumentacja zestawów plików po więcej informacji. Krótko mówiąc, to drukuje wszystkie śledzone pliki, które pasują do danego wyrażenia regularnego i nie są plikami binarnymi (nie zawierają NUL bajtów).


8
2017-12-12 15:56



Czy wymaga to minimalnej wersji Mercurial lub określonego rozszerzenia? Nie mogłem dostać hg files do pracy na v2.6.3 (unknown command 'files') - Matt R
@Matt: wzruszać ramionami jego udokumentowane do pracy, więc zakładam, że jest w najnowszej stabilnej wersji ... - Kevin
@Matt: Stwierdziłem, że możesz użyć hg locate w podobny sposób w starszych wersjach hg. - Kevin
Wymagany jest Mercurial 3.2. The WhatsNew strona mówi: "files: dodaj nowe polecenie ujednolicające lokalizowanie i manifestowanie funkcjonalności". - sschuberth


Dodaj ten alias do ~/.hgrc:

[alias]
grepcwd = ! $HG grep -r 'reverse(::.)' "$1" .

Następnie użyj hg grepcwd foobar w ten sam sposób, w jaki będziesz używał git grep foobar.

Pierwotnym źródłem: http://www.emilsit.net/blog/archives/git-is-more-usable-than-mercurial/


1
2018-04-26 16:08