svn log -q -v filename
e saída de processamento para revlist
svn diff -c M filename
para alterações no nome do arquivo na revisão M
Procurando por um programa ou script, eu posso usar para "caminhar" facilmente através de um histórico de revisão do SVN para um arquivo específico. Alguém sabe se isso existe? Posso conseguir isso com o cliente de linha de comando para svn?
O que eu gostaria de poder fazer:
Eu inventaria algo em bash / sed / awk, mas prefiro usar algo que já existe.
svn log -q -v filename
e saída de processamento para revlist
svn diff -c M filename
para alterações no nome do arquivo na revisão 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
Provavelmente, existe uma maneira melhor de fazer isso com awk em vez de sed, ou até mesmo uma maneira melhor de fazê-lo com sed, mas isso funciona.
Exibe as últimas 20 versões deste arquivo para less
. A partir daí, você pode pesquisar por Index: ( /Index:[Enter]
) e depois usar n
/ N
para "paginar" para cima e para baixo no histórico de revisões.
Apenas para explicar o que está acontecendo aqui;
svn log
para obter uma lista de revisões em que o arquivo é modificado. grep
para linhas com o número de revisão. sed
para retirar todas as outras informações da linha, deixando apenas os números de revisão. xargs
(com -L 1) para obter repetidamente o diff do arquivo de cada revisão específica e, finalmente, ... less
para torná-lo "navegável"