Вы можете использовать командную строку svn с опциями -v (подробный, показывающий измененные пути) и --xml и передать результат в XMLStarlet .Это позволит вам фильтровать по удаленному действию и показывать вам ревизии, где были удалены файлы (которые вы можете затем передать через grep, чтобы получить искомый файл).
Пример:
svn log -v --xml /path/to/repo | xml sel -T -t -m "//logentry/paths/path[@action='D']" -v "concat(../../@revision,': ',.)" -n
Пример вывода:
103: /foo/deprecated.h
99: /foo/bar/badfile.hpp
Очевидно, с помощью svn log вы можете ограничить это диапазоном ревизий (-r M: N), или диапазон дат (-r {date1}: {date2}), или последние N изменений (-l C).
Единственный недостаток - ложные срабатывания в связи с тем, чтоSVN-перемещения действительно копируют + удаляют.
Как только вы узнаете ревизию, в которой она была удалена, вы можете использовать svn cat или svn export , чтобы посмотреть наfile:
svn cat /path/to/repo/foo/deprecated.h@102
Так как deprecated.h был удален в r103, я сказал svn, чтобы получить путь к deprecated.h, как он существовал в r102 (до удаления).