Я сама хотіла відповіді. Спробуйте наступне, щоб вивести лише видалення з 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 } }'
Це фільтрує вихід журналу через awk . awk буферизує кожен знайдений рядок ревізії, видаючи його лише тоді, коли буде знайдено запис видалення. Кожна редакція виводиться лише один раз, тому декілька видалень у редакції групуються разом (як у стандартному svn log
висновку).
Ви можете вказати a, --limit
щоб зменшити кількість повернених записів. Ви також можете видалити --stop-on-copy
, якщо потрібно.
Я знаю, є скарги на ефективність розбору всього журналу. Я думаю, що це краще рішення, ніж греп та його -B
варіант "кинути широку мережу" . Я не знаю, чи це більш ефективно, але я не можу придумати альтернативу svn log
. Це схоже на відповідь @Alexander Amelkin, але не потребує конкретного імені. Це також мій перший сценарій awk , тому це може бути нетрадиційно.