mercurial grep bisect

Encontrando la primera aparición de texto en el repositorio de Mercurial.



grep bisect (4)

La respuesta seleccionada es incompleta: hg grep --all --files-with-matches ''PATTERN'' [FILES] es normalmente lo que desea.

Tengo un repositorio de Mercurial con ~ 800 conjuntos de cambios y necesito encontrar el primer conjunto de cambios donde apareció la palabra Ejemplo . La palabra aparece dentro de un archivo .php y no en un comentario de confirmación, etc.

¿Cuál es la forma más rápida / fácil de hacer eso?


--diff utilizar el --diff ( --diff está en desuso) de hg grep. Busca en el archivo diff en lugar de en el contenido del archivo, lo que resultaría es que obtendría todos los conjuntos de cambios / revisiones donde apareció o eliminó la palabra Ejemplo .

Ahora para obtener el primer golpe, debe pasar esto en orden de revlog a través de la marca -r . Es decir, las revisiones se buscarán de 0 a punta. ( -r 0: tip )

Y para los archivos .php, querría pasar el indicador -I que es para los patrones de nombre de archivo.

Así que tu orden será:

hg grep --all -r 0:tip "Example" -I "*.php"


prueba hg grep Example *.php

hg grep [OPTION]... PATTERN [FILE]... search for a pattern in specified files and revisions Search revisions of files for a regular expression. This command behaves differently than Unix grep. It only accepts Python/Perl regexps. It searches repository history, not the working directory. It always prints the revision number in which a match appears. By default, grep only prints output for the first revision of a file in which it finds a match. To get it to print every revision that contains a change in match status ("-" for a match that becomes a non-match, or "+" for a non-match that becomes a match), use the --all flag. options: -0 --print0 end fields with NUL --all print all revisions that match -f --follow follow changeset history, or file history across copies and renames -i --ignore-case ignore case when matching -l --files-with-matches print only filenames and revisions that match -n --line-number print matching line numbers -r --rev search in given revision range -u --user list the author (long with -v) -d --date list the date (short with -q) -I --include include names matching the given patterns -X --exclude exclude names matching the given patterns use "hg -v help grep" to show global options


hg help filesets ... "grep(regex)" File contains the given regular expression.

hg locate "set:grep(Example) and **.php"

o

hg locate "set:**.php and (**Example*)"