svn log -q -v filename
и обработка вывода для revlist
svn diff -c M filename
для изменений в имени файла в ревизии M
Ища программу или сценарий, я могу использовать его, чтобы легко «просмотреть» историю изменений SVN для конкретного файла. Кто-нибудь знает, существует ли это? Могу ли я добиться этого с помощью клиента командной строки для SVN?
Что я хотел бы иметь возможность сделать:
Я зашуршал бы что-нибудь в bash / sed / awk, но я бы предпочел использовать то, что уже существует.
svn log -q -v filename
и обработка вывода для revlist
svn diff -c M filename
для изменений в имени файла в ревизии M
svn log FILENAME_GOES_HERE --limit 20 | grep -P 'r\d+ \|' | sed s/^r// | sed s/\ .*// | xargs -L 1 svn diff DancerAdmin/templates/Common/inputs/ss-dropdown.html -c | less
Вероятно, есть лучший способ сделать это с помощью awk вместо sed, или даже лучший способ сделать это с помощью sed, но это работает.
Выводит последние 20 версий этого файла в less
. Оттуда вы можете искать Index: ( /Index:[Enter]
), а затем использовать n
/ N
для «перелистывания» вверх и вниз по истории изменений.
Просто чтобы объяснить, что здесь происходит;
svn log
чтобы получить список ревизий, где файл был изменен.grep
для строк с номером ревизии в нем.sed
убрать всю остальную информацию из строки, оставив только номера ревизий.xargs
(с -L 1) для многократного получения различий для файла из каждой конкретной ревизии и, наконец, ...less
сделать его "судоходным"