Como é que vê os registos recentes do SVN?

Escrever uma lista incrivelmente longa e inútil numa linha de comando. Não faço ideia porque é que isso é o padrão. Se eu quisesse ler (ou mesmo pudesse ler) 300 entradas no terminal, eu não me importaria de digitar 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?

 172
svn
Author: Mike P, 2011-02-03

9 answers

limit Opção, por exemplo:

svn log --limit 4

svn log -l 4

Apenas as últimas 4 entradas

 232
Author: Bert F, 2011-02-02 23:30:44

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

 122
Author: Daniel Dinnyes, 2017-05-23 11:54:37

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
 38
Author: Jonas Söderström, 2013-01-09 15:35:32

Passar a saída por less ou outro pager:

svn log | less
 11
Author: Greg Hewgill, 2011-02-02 23:25:04

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

 5
Author: james-geldart, 2012-12-11 09:18:16
Como já reparaste 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.
 4
Author: bahrep, 2015-02-25 11:34:48

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
 3
Author: Othmar Wigger, 2016-01-18 10:18:09

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
 3
Author: h3X3n, 2016-07-21 13:18:10

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

LE (obrigado Gary pelo comentário) a mesma coisa, mas muito mais curta e lógica:

svn log -r BASE:HEAD -v

 3
Author: Catalin, 2017-05-03 16:03:20