A digitação svn log
cospe uma lista incrivelmente longa e inútil em uma linha de comando. Eu não tenho idéia do porquê esse é o padrão. Se eu quisesse ler (ou mesmo pudesse ler) 300 entradas no terminal, não me importaria de digitar svn log --full
ou algo parecido.
Talvez o pessoal do SVN esteja pensando que eu queria alimentar essa saída para outro programa. No entanto, se for esse o caso, faria mais sentido receber a chamada mais detalhada do programa - não o usuário do terminal.
De qualquer forma, como vejo apenas algumas atividades recentes, como as últimas 5 ou 10 entradas, para ver o que mudou?
git log
,.Respostas:
limit
opção, por exemplo:Apenas as últimas 4 entradas
fonte
Além do que Bert F disse , muitos comandos, incluindo
log
a opção-r
(ou--revision
). A seguir, alguns exemplos práticos usando essa opção para mostrar intervalos de revisões:Para listar tudo em ordem crescente:
Para listar tudo em ordem decrescente:
Para listar tudo, desde o décimo terceiro até a base da revisão atualmente em check-out, em ordem crescente:
Para obter tudo entre as datas especificadas:
Você pode combinar todas as expressões acima com a
--limit
opção, para ter um controle bastante granular sobre o que é impresso. Para mais informações sobre essas-r
expressões, consultesvn help log
ou o capítulo relevante no livro Controle de Versão com Subversionfonte
svn log .
pode retornar apenas a primeira revisão para mim (da mesma forma que comsvn log --limit 4 .
); mas se eu ligarsvn log -r HEAD:1 .
, finalmente recebo todas as entradas listadas ... Mais uma vez obrigado - vivas!svn log
mostra apenas o histórico de alterações do caminho atual.Eu gosto de usar
-v
para o modo detalhado.Ele fornecerá o ID de confirmação, comentários e todos os arquivos afetados.
Exemplo de saída:
fonte
Canalize a saída através de
less
ou outro pager:fonte
Caso alguém esteja olhando para essa pergunta antiga, um comando útil para ver as alterações desde sua última atualizaçã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 mais lógica:
svn log -r BASE:HEAD -v
fonte
svn log -r BASE:HEAD -v
Para adicionar ao que os outros disseram, você também pode criar um alias no arquivo .bashrc ou .bash_aliases:
ou o que você quiser como padrão
fonte
Como você já notou, o
svn log
comando executado sem argumentos mostra todas as mensagens de log relacionadas ao URL especificado ou à pasta da cópia de trabalho em que o comando é executado.Você sempre pode refinar / limitar os
svn log
resultados:svn log --limit NUM
mostrará apenas o primeiro NUM de revisões,svn log --revision REV1(:REV2)
mostrará a mensagem de log para a revisão REV1 ou para o intervalo REV1 - REV2,svn log --search
mostrará revisões que correspondem ao padrão de pesquisa especificado (o comando está disponível no Subversion 1.8 e em um cliente mais recente). Você pode pesquisar porfonte
Esta resposta é direcionada a outras perguntas sobre as opções de subcomandos do Subversion. Para cada subcomando disponível (por exemplo, adicionar, log, status ...), você pode simplesmente adicionar a
--help
opção para exibir a lista completa de opções disponíveis que você pode usar com seu subcomando, além de exemplos de como usá-las. O seguinte snippet é obtido diretamente dasvn log --help
saída do comando na seção "examples":fonte
Mas o svn log ainda está na ordem inversa, ou seja, as entradas mais recentes são exibidas primeiro, saindo da parte superior do meu terminal e desaparecendo. Eu realmente quero ver as últimas entradas, ou seja, a ordem de classificação deve ser cronológica. O único comando que faz isso parece ser,
svn log -r 1:HEAD
mas leva muito tempo em um repositório com cerca de 10000 entradas. Eu vim acima isso:Exiba as últimas 10 entradas do subversion em ordem cronológica:
fonte