2012-03-15 8 views
12

Digamos que tengo las siguientes revisiones:En mercurial, ¿cómo puedo encontrar los conjuntos de cambios que contienen una cadena?

rev 1: 
+ Dim Foo as integer 

rev 2: 
+ I like big butts, I cannot lie 

rev 3 
- Dim Foo as integer 

Foo está en rev 1 & 2, y se retira de tres. ¿Qué comando puedo emitir que devolverá todos los conjuntos de cambios que Foo se haya agregado o eliminado?

Idealmente me gustaría ser capaz de hacer esto desde toroisehg así

+0

posible duplicado de [Encontrar conjuntos de cambios en mercurial mediante la eliminación del parche] (http://stackoverflow.com/questions/5330782/finding-changesets-in-mercurial-by-grepping-the-patch) – krtek

+0

Foo es contenido de archivo, nombre de archivo o texto en el mensaje de confirmación? –

Respuesta

18

Puede utilizar el comando grep:

hg grep --all Foo 

para abordar las preocupaciones Lazy tejón en los comentarios.

$ hg init 
$ echo "Dim Foo as integer" > test 
$ hg commit -m "1" 
$ echo "I like big butts, I cannot lie" > test 
$ hg commit -m "2" 
$ echo "Dim Foo as integer" > test 
$ hg commit -m "3" 
$ hg grep --all Foo 

La salida del comando grep es:

test:2:+:Dim Foo as integer 
test:1:-:Dim Foo as integer 
test:0:+:Dim Foo as integer 

Lo que significa, Foo fue visto por primera vez en la prueba del archivo de revisión 0 (el signo + nos dice), entonces desapareció en la revisión 1 (los signos -), y vuelven a aparecer en la revisión 2.

No sé si es lo que quiere, pero indica claramente la revisión en la que se agregó o eliminó la palabra buscada.

+0

BTW: grep devuelve ** archivos, no conjuntos de cambios **. OP preguntó "todos los conjuntos de cambios ..." –

+1

@LazyBadger Usted puede ver que grep hace exactamente eso, diciéndonos en qué revisión aparece el patrón buscado y desaparece – krtek

+0

Me gustaría cambiar los conjuntos, pero esto me hace llegar allí. – WhiskerBiscuit

Cuestiones relacionadas