Como é que vê os registos recentes do SVN?
svn log --full
ou algo semelhante.
talvez os tipos da SVN estejam a pensar que eu queria transmitir essa saída para outro programa. No entanto, se for esse o caso, faria mais sentido ter a chamada mais descritiva para o programa - não o usuário terminal.
De qualquer forma, como é que eu ... veja apenas alguma atividade recente como as últimas 5 ou 10 entradas para ver o que mudou?9 answers
limit
Opção, por exemplo:
svn log --limit 4
svn log -l 4
Apenas as últimas 4 entradas
Além do que } Bert F disse , muitos comandos, incluindo log
tem a opção -r
(ou --revision
). A seguir estão alguns exemplos práticos usando esta opção para mostrar intervalos de revisões:
Para listar tudo em ordem ascendente:
svn log -r 1:HEAD
Para listar tudo por ordem decrescente:
svn log -r HEAD:1
Para listar tudo, desde o décimo terceiro até à base da revisão actualmente verificada, por ordem ascendente:
svn log -r 13:BASE
Para obter tudo entre o datas indicadas:
svn log -r {2011-02-02}:{2011-02-03}
Você pode combinar todas as expressões acima com a opção --limit
, de modo que você pode ter um controle bastante granular sobre o que é impresso. Para mais informações sobre estas expressões -r
, consulte svn help log
ou o capítulo relevante no livro controlo de versões com Subversion
Gosto de usar -v
para modo descritivo.
Ele lhe dará o ID de commit, comentários e todos os arquivos afetados.
svn log -v --limit 4
Exemplo de saída:
I added some migrations and deleted a test xml file ------------------------------------------------------------------------ r58687 | mr_x | 2012-04-02 15:31:31 +0200 (Mon, 02 Apr 2012) | 1 line Changed paths: A /trunk/java/App/src/database/support A /trunk/java/App/src/database/support/MIGRATE A /trunk/java/App/src/database/support/MIGRATE/remove_device.sql D /trunk/java/App/src/code/test.xml
Passar a saída por less
ou outro pager:
svn log | less
Para adicionar ao que outros disseram, Você também pode criar um pseudônimo em seu .bashrc or .ficheiro bash_aliases:
alias svnlog='svn log -l 30 | less'
Ou o que você quiser como seu padrão
svn log
o comando executado sem quaisquer argumentos mostra todas as mensagens de Registo que se relacionam com o URL que indicar ou com a pasta de cópia de trabalho onde executa o comando.
Pode sempre refinar / limitar os resultados svn log
:
-
svn log --limit NUM
irá mostrar apenas o primeiro número de revisões, -
svn log --revision REV1(:REV2)
irá mostrar a mensagem de registo para a revisão REV1 ou para o intervalo REV1 -- REV2, -
svn log --search
irá aparecer as revisões que correspondem ao padrão de pesquisa que indicar (o comando está disponível no Subversion 1.8 e no cliente mais recente). Você pode procurar por- autor da revisão (isto é, Utilizador dos committers),
- data da autorização da revisão,
- texto do comentário da revisão (mensagem de Registo),
- a lista de caminhos mudou na revisão.
Mas o registo de svn ainda está em ordem inversa, ou seja, as entradas mais recentes são a saída em primeiro lugar, deslizando para fora do topo do meu terminal e desaparecendo. Eu realmente quero ver as últimas entradas, ou seja, a ordem de ordenação deve ser cronológica. O único comando que faz isso parece ser svn log -r 1:HEAD
mas isso leva muito tempo em um repositório com cerca de 10000 entradas. Eu descobri isto:
Mostra os últimos 10 itens do subversion por ordem cronológica:
svn log -r $(svn log -l 10 | grep '^r[0-9]* ' | tail -1 | cut -f1 -d" "):HEAD
Esta resposta é dirigida a outras perguntas sobre as opções dos subcomités de Subversion. Para cada subcomandante disponível (ou seja, adicionar, registar, estatuto ...), você pode simplesmente adicionar a opção --help
para mostrar a lista completa das opções disponíveis que você pode usar com o seu subcomand, bem como exemplos de como usá-las. O seguinte excerto é retirado directamente do comando svn log --help
sob a secção "exemplos":
Show the latest 5 log messages for the current working copy
directory and display paths changed in each commit:
svn log -l 5 -v
No caso de alguém estar a olhar para esta pergunta antiga, um comando útil para ver as alterações desde a sua última actualização:
svn log -r $(svn info | grep Revision | cut -f 2 -d ' '):HEAD -v
svn log -r BASE:HEAD -v