2012-05-03 18 views
23

Sto cercando l'equivalente mercuriale della soluzione a questo problema:HG: trovare dove una linea eliminata è stata rimossa

How do I "git blame" a deleted line?

Insomma, sto guardando un mercuriale impegnarsi in cui è stata aggiunta una linea e nella presente revisione questa riga non è più presente e voglio trovare quando e perché è stata rimossa.

+0

Non proprio un duplicato, ma vedi [questa domanda] (http://stackoverflow.com/questions/9725856/in-mercurial-how-can-i-find-changesets-that-taintain-a-string). – shambulator

+3

meraviglioso, questo mi ha aiutato a ottenere da 'hg show 9876: tip path/to/file | grep --all "pattern" -U20' a 'hg grep -r 9876: tip" pattern "percorso/a/file', che era proprio quello di cui avevo bisogno. Se lo darai come risposta lo accetterò. Inizialmente l'ho provato senza '--all', pensando che fosse un sostituto per il flag -r, ma ho scoperto che elenca solo la prima revisione a meno che non sia specificato' --all'. – undefined

+0

Grazie per l'offerta, Brian, ma ti ho solo indicato una risposta esistente che l'ha risolta. Scrivi una risposta breve e [aggiungi un krtek a upvote] (http://stackoverflow.com/a/9726648/715075) :) – shambulator

risposta

24

hg grep consente di cercare un registro modifiche per un motivo, ad esempio una stringa eliminata. Se stai cercando qualcosa in più rispetto alla prima occorrenza, assicurati di includere il flag --all. Per me sembrava qualcosa di simile:

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

Grazie a Anton per i commenti utili e Krtek per la sua related answer.

+1

'hg grep' è stato rinominato in' hg histgrep' nel frattempo. inoltre la risposta è ancora valida. – stigi

+0

@stigli: Ha? Non riesco a trovare alcun riferimento a questo, anche nell'ultimo Mercurial (3.8.3+). – jwd

Problemi correlati