Quería una respuesta, yo mismo. Pruebe lo siguiente para generar solo eliminaciones de svn log
.
svn log --stop-on-copy --verbose [--limit <limit>] <repo Url> | \
awk '{ if ($0 ~ /^r[0-9]+/) rev = $0 }
{ if ($0 ~ /^ D /) { if (rev != "") { print rev; rev = "" }; print $0 } }'
Esto filtra la salida del registro a través de awk . awk almacena en búfer cada línea de revisión que encuentra, emitiéndola solo cuando se encuentra un registro de eliminación. Cada revisión solo se genera una vez, por lo que se agrupan varias eliminaciones en una revisión (como en el estándarsvn log
salida ).
Puede especificar a --limit
para reducir la cantidad de registros devueltos. También puede eliminar el --stop-on-copy
, según sea necesario.
Sé que hay quejas sobre la eficiencia de analizar todo el registro. Creo que esta es una mejor solución que grep y su -B
opción de "lanzar una red amplia" . No sé si es más eficiente, pero no puedo pensar en una alternativa svn log
. Es similar a la respuesta de @Alexander Amelkin, pero no necesita un nombre específico. También es mi primer guión awk , por lo que puede ser poco convencional.