Я сам хотел получить ответ. Попробуйте следующее для вывода только удаляет из 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
выводе).
Вы можете указать, --limit
чтобы уменьшить количество возвращаемых записей. Вы также можете удалить--stop-on-copy
, по мере необходимости.
Я знаю, что есть жалобы на эффективность разбора всего журнала. Я думаю, что это лучшее решение, чем grep и его -B
опция «бросить широкую сеть» . Я не знаю, является ли это более эффективным, но я не могу придумать альтернативу svn log
. Это похоже на ответ @Alexander Amelkin, но не требует конкретного имени. Это также мой первый скрипт на awk , поэтому он может быть нетрадиционным.