2012-05-03 7 views
23

Busco el equivalente de mercurio de la solución a esta pregunta:HG: encontrar donde una línea borrada fue retirado

How do I "git blame" a deleted line?

En resumen, estoy buscando a una voluble cambios y donde se añadió una línea , y en la revisión actual esta línea ya no está presente, y quiero encontrar cuándo y por qué fue eliminada.

+0

No es exactamente un duplicado, pero vea [esta pregunta] (http://stackoverflow.com/questions/9725856/in-mercurial-how-can-i-find-changesets-that-contain-a-string). – shambulator

+3

maravilloso, esto me ayudó a obtener 'hg show 9876: tip path/to/file | grep --todo "patrón" -U20' a 'hg grep -r 9876: tip" path "path/to/file', que era justo lo que necesitaba. Si le das eso como respuesta, lo aceptaré. Originalmente lo intenté sin '--all', pensando que era un sustituto del indicador -r, pero encontré que solo muestra la primera revisión a menos que se especifique' --all'. – undefined

+0

Gracias por la oferta, Brian, pero solo te indiqué una respuesta existente que lo resolvió. Escribe una respuesta corta y [da krtek a upvote] (http://stackoverflow.com/a/9726648/715075) :) – shambulator

Respuesta

24

hg grep le permitirá buscar un registro de cambios para un patrón, como una cadena eliminada. Si está buscando algo más que la primera vez, asegúrese de incluir la bandera --all. Para mí parecía algo como esto:

hg grep --all -r 9876:tip "pattern" path/to/file

Gracias a Anton por los comentarios y votos krtek por su related answer.

+1

'hg grep' ha sido renombrado a' hg histgrep' mientras tanto. además de que la respuesta sigue siendo válida. – stigi

+0

@stigli: ¿Tiene? No puedo encontrar ninguna referencia a eso, incluso en el último Mercurial (3.8.3+). – jwd

Cuestiones relacionadas