SVN info mostra revisão antiga # como a revisão atual

5

Eu tenho um repositório do SVN. Quando eu recentemente realizei uma alteração, a revisão atual refletida # é 620:

Transmitting file data ...
Committed revision 620.

No entanto, se eu executar svn info , obtenho o seguinte:

Path: .
URL: http://www.site.com.testing/repos/site.com/trunk
Repository Root: http://svn.server/repos/site.com
Repository UUID: a9c3a166-39f6-4cfb-8622-fd24eb11034b
Revision: 584
Node Kind: directory
Schedule: normal
Last Changed Author: bob
Last Changed Rev: 584
Last Changed Date: 2012-03-26 18:32:55 -0400 (Mon, 26 Mar 2012)

Portanto, confirmar algo me diz que o repositório atual do SVN é 620, mas svn info me diz que a revisão atual é 584. Também svn log mostra 584 como a atual (mais recente) rev também.

Se eu olhar no SVN Log via TortoiseSVN no Windows, ele mostra corretamente a revisão 620 como a revisão atual.

Estou perdendo alguma coisa sobre como svn info e svn log funcionam?

    
por Jake Wilson 17.04.2012 / 17:38

2 respostas

7

Provavelmente, o comando svninfo está mostrando a revisão do diretório de trabalho atual, ao passo que, quando você envia um arquivo ou arquivos alterados, a saída desse commit mostra a nova revisão desses arquivos. 584 será a última revisão alterada / atualizada da pasta.

Tente executar um svn update na pasta e o re-running svn info . Deve trazer o resto da pasta até 620

    
por 17.04.2012 / 17:49
8

O que o Subversion está mostrando é que você fez check-out da revisão 584. As informações são obtidas diretamente do arquivo .svn/entries , e não do servidor.

Isto decorre do design básico do Subversion de não requisitar informações do servidor de repositório sempre que possível. Foi uma decisão tomada para permitir que os usuários tivessem muito poder do Subversion se estivessem trabalhando remotamente e não tivessem conexão de rede com o servidor de repositório.

  • Se você fizer um svn info em um dos arquivos que acabou de confirmar, verá que o arquivo está na revisão 620.
  • Se você fez um svn info http://www.site.com.testing/repos/site.com/trunk , verá que a última revisão foi a revisão 620 porque está falando com o servidor.
  • Se você fez um svn update e, em seguida, um svn info , verá seu diretório de trabalho na revisão 620.

Apenas uma pergunta rápida: você confirmou alguns arquivos ou confirmou o diretório de trabalho inteiro? Se você especificou no commit dos arquivos que foram alterados, isso faria sentido. O Subversion não saberia atualizar o arquivo .svn/entries na raiz do seu diretório de trabalho. No entanto, eu vi isso mesmo quando eu comprometo todas as alterações. Eu comecei a fazer um svn up sempre que eu cometo todas as minhas alterações.

Lembre-se: Não é um bug. É uma característica.

    
por 17.04.2012 / 18:02