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*)"