Como encontrar o número da versão do meu servidor Subversion?


292

Quero saber se meu servidor está executando o Subversion 1.5.

Como posso descobrir isso?

Também seria bom saber o número da versão do meu cliente SVN. svn helpnão foi útil.

Nota: Eu não quero o número de revisão do meu projeto , etc. Esta pergunta é sobre o próprio software Subversion .

Respostas:


210

Para encontrar a versão do REPOSITÓRIO do subversion, você pode:

  1. Olhe para o repositório na Web e na parte inferior da página, algo como:
    "Powered by Subversion versão 1.5.2 (r32768)."
  2. Na linha de comando: <insert curl, grep oneliner here>

Se não for exibido, visualize a origem da página

<svn version="1.6.13 (r1002816)" href="http://subversion.tigris.org/"> 

Agora para o CLIENTE do subversion:

svn --version

será suficiente


31
Isso funciona apenas se o servidor exibir essas informações, alguns servidores, como a hospedagem de códigos do Google, não.
445 Andrea Andreacia

3
Essa é a versão do servidor ou a versão do repositório? (que pode ser diferente AFAIK)
GraemeF

7
Você também pode olhar para os cabeçalhos de resposta (usando firebug vista / net para, por exemplo.) E encontrar a versão SVN lá
haknick

6
O CollabNet também não exibe um número de versão - de forma visível ou na fonte da página.
TenLeftFingers

5
-1: Esperando a resposta ser concluída (o espaço reservado "<inserir curl, grep oneliner aqui>".) A resposta não foi útil para mim, pois o servidor que estou usando é svn://apenas.
Slipp D. Thompson

133

Vamos mesclar estas respostas:

Para REPOSITORY / SERVER (a pergunta original):

Se você puder acessar o servidor Subversion:

  • De uma resposta anterior de Manuel , execute o seguinte no servidor SVN:

    svnadmin --version
    

Se o acesso HTTP / HTTPS:

  • Veja a linha "powered by Subversion" ao acessar o servidor através de um navegador.

  • Acesse o repositório via navegador e, em seguida, procure a string de versão incorporada na fonte HTML. Das respostas anteriores de elviejo e jaredjacobs . Da mesma forma, de ??, use as ferramentas de desenvolvedor do navegador (geralmente Ctrl+ Shift+ I) para ler a resposta completa. Essa também é a maneira mais fácil (não automatizada) de lidar com certificados e autorização - seu navegador faz isso por você.

  • Verifique as tags de resposta (elas não são mostradas na fonte HTML), de uma resposta anterior de Christopher

    wget -S --spider 'http://svn.server.net/svn/repository' 2>&1 |
    sed -n '/SVN/s/.*\(SVN[0-9\/\.]*\).*/\1/p'
    

Se acesso svn: // ou ssh + svn

Se servidores GoogleCode SVN

    Check out the current version in a FAQ: 
    http://code.google.com/p/support/wiki/SubversionFAQ#What_version_of_Subversion_do_you_use?

Se outro servidor SVN personalizado

    TBD

Edite para finalizar esta resposta

Para o CLIENTE (não a pergunta original):

svn --version

Esta resposta não está clara e svnserve --versiondeve ser usada no servidor. Se for executado no cliente, fornece o número da versão do cliente, não o servidor.
Craig McQueen

Esta é uma boa coleção. Eu fiz isso pelo caminho de "ler a resposta completa do acesso http / https". No meu caso, vejo uma linha no cabeçalho de resposta: <Servidor: "Apache / 2.2.14 (Unix) DAV / 2 SVN / 1.6.9 mod_ssl / 2.2.14 OpenSSL / 0.9.8a">
Tatera

Caso alguém esteja usando o Visual SVN Server, as primeiras linhas da fonte HTML (clique com o botão direito do mouse em Exibir fonte da página) indicarão a versão do SVN.
Raptor

Esta resposta está sendo discutida no Meta .
Glorfindel

70

No servidor: svnserve --version

no caso de configuração baseada em svnserve (svn: // e svn + xxx: //).

(Para completar).


Como Joe J menciona abaixo, eu acredito que isso vai apenas dar-lhe a versão do programa cliente svnserve que provavelmente irá coincidir com o programa svn cliente
Kirby

12
svnservenão é um programa cliente, é o servidor. E você deve digitar o comando acima quando estiver no servidor.
Milen A. Radev 29/10

48

Aqui está a maneira mais simples de obter a versão do servidor SVN. O HTTP funciona mesmo que seu repositório SVN exija HTTPS .

Opções $ curl -X http: // my-svn-domain /
<! DOCTYPE HTML PUBLIC "- // IETF // DTD HTML 2.0 // PT">
<html> <head> ... </head>
<body> ...
<endereço> Apache / 2.2.11 (Debian) DAV / 2 SVN / 1.5.6 PHP / 5.2.9-4 ... <endereço>
</body> 
</html>

1
Era disso que eu precisava. Vote por favor!
bentford

8
Funciona apenas quando "ServerTokens Full" ( httpd.apache.org/docs/2.2/mod/core.html#servertokens ).
Milen A. Radev

24

Para um servidor baseado em HTTP, existe um script Python para localizar a versão do servidor em: http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/server-version.py

Você pode obter a versão do cliente com

`svn --version`

5
Se não me engano, parece que esse script só funciona com servidores HTTP ou HTTPS base, e não svn ou ssh + servidores SVN
crashmstr

Se for baseado no ssh, basta ssh na caixa e execute "svn --version".
John Meagher

5
'svn --version' no servidor só lhe dá a versão do cliente em execução no servidor, isso pode não ser necessariamente o mesmo que a versão do servidor
PiedPiper

1
Esse script também exige que ServerTokens Full seja definido no servidor Apache. Ele falhará nos mesmos servidores em que a solução de curvatura falhará.
yam655 8/09/11

24

Se a versão do servidor Subversion não estiver impressa na listagem HTML, ela estará disponível no cabeçalho HTTP RESPONSE retornado pelo servidor. Você pode obtê-lo usando este comando shell

wget -S --no-check-certificate \
  --spider 'http://svn.server.net/svn/repository' 2>&1 \
  | sed -n '/SVN/s/.*\(SVN[0-9\/\.]*\).*/\1/p';

Se o servidor SVN exigir que você forneça um nome de usuário e senha, adicione os wgetparâmetros --usere --passwordo comando como este

wget -S --no-check-certificate \
  --user='username' --password='password' \
  --spider 'http://svn.server.net/svn/repository' 2>&1 \
  | sed -n '/SVN/s/.*\(SVN[0-9\/\.]*\).*/\1/p';

4
Eu tentei todas as outras opções nesta página, com curl e a partir da URL e até agora é a única que funcionou para mim - o servidor é o freebsd, o servidor 1.6.16.
ideasman42

Da mesma forma, esta é a única resposta que funcionou para mim entre todas as respostas aqui. Usei os Cabeçalhos HTTP do Firefox Live e para ler a resposta do servidor, porque eu também estava com problemas de certificado SSL, que não estava com vontade de descobrir. Obrigado, Christopher
Kirby

1
@ Kirby Adicionei um --no-check--certificateparâmetro, a --userand --passwordpara manipular servidores que exigem credenciais, mas não possuem um certificado ssh válido. Isso é bastante comum, como você observou.
Christopher

1
@Christopher, deve ler '' wget --password = 'password' .. | ..; ' acima.
Whaefelinger

@whaefelinger obrigado pela correção. Eu atualizei a resposta.
Christopher

8

Mais uma opção: se você possui o Firefox (eu estou usando o 14.0.1) e uma interface da Web SVN:

  • Abra Ferramentas-> Desenvolvedor Web-> Console da Web em uma página de recompra
  • Atualizar a página
  • Clique na linha GET
  • Procure na seção Cabeçalhos de resposta na linha Servidor:

Deve haver uma string "SVN / 1.7.4" ou similar lá. Novamente, isso provavelmente só funcionará se você tiver "ServerTokens Full", conforme mencionado acima.


Obrigado. Eu fiz uma coisa semelhante no Chrome para um servidor VisualSVN, abrindo a guia Rede na janela Ferramentas do desenvolvedor (pressione F12 para acessar isso) e inspecionando a resposta.
XåpplI'-I0llwlg'I -

Atualização: clique na guia Rede no painel Ferramentas antes de atualizar a página (atualmente Firefox 30)
Conrad

7

Realmente não há uma maneira fácil de descobrir qual versão do Subversion seu servidor está executando - exceto acessar o servidor e ver por si mesmo.

No entanto, esse pode não ser um problema tão grande quanto você imagina. Os clientes do Subversion são onde grande parte do trabalho pesado é tratado, e a maioria das versões dos clientes do Subversion pode funcionar com praticamente qualquer versão do servidor.

O último release em que a versão do servidor realmente fez diferença para o cliente foi a alteração do release 1.4 para o 1.5 quando o rastreamento de mesclagem foi adicionado. O rastreamento de mesclagem foi bastante aprimorado na versão 1.6, mas isso realmente não afeta as interações entre o cliente e o servidor.

Vamos dar as últimas alterações no Subversion 1.8:

  • svn moveagora é uma operação de primeira classe : o Subversion finalmente entende que svn movenão é um svn copye svn delete. No entanto, isso é algo que o cliente manipula e realmente não afeta a versão do servidor.
  • svn merge --reintegrateobsoleto : novamente, desde que o servidor esteja na versão 1.5 ou superior, isso não é um problema.
  • Herança de Propriedade : Esta é outra atualização da versão 1.8, mas isso funcionará com qualquer servidor Subversion - embora os servidores Subversion com a versão 1.8 ofereçam melhor desempenho nas propriedades herdáveis.
  • Duas novas propriedades herdáveis ​​- svn:global-ignoresesvn:auto-props : Ai! O que realmente queríamos. Uma maneira de configurar essas duas propriedades sem depender do próprio arquivo de configuração do Subversion. No entanto, esse é um problema apenas do cliente, portanto, novamente, não importa qual versão do servidor você está usando.
  • cache de memória do gnu-agent : Outro recurso somente para cliente.
  • aprimoramentos de desempenho do fsfs e autenticação authz no repositório. Recursos agradáveis, mas funcionam independentemente da versão do cliente que você estiver usando.

De todos os recursos, apenas um depende da versão do servidor ser 1.5 ou superior (e o 1.4 ficou obsoleto por um bom tempo. Os recursos mais recentes do 1.8 melhoram o desempenho da sua cópia de trabalho, mas o servidor está na revisão 1.8. Você é muito mais afetado pela versão do cliente do que pela versão do servidor.

Eu sei que essa não é a resposta que você queria (nenhuma maneira oficial de ver a versão do servidor), mas felizmente a versão do servidor não afeta muito você.


7

Tente o seguinte:

ssh your_user@your_server svnserve --version

svnserve, version 1.3.1 (r19032)
   compiled May  8 2006, 07:38:44

Espero que ajude.


4

Para uma configuração svn + ssh, use ssh para executar svnserve --version na máquina host:

$ ssh usuário @ host svnserve --version

É necessário executar o comando svnserve na máquina que realmente está servindo como servidor.


1
isso pressupõe que você pode ssh no servidor. É comum configurar um servidor svn + ssh com uma chave pública no arquivo allowed_keys e o comando = svnserve que inicia automaticamente o svnserver sem a opção --version.
jrwren

2

Basta usar um navegador da web para acessar o endereço SVN. Verifique o código fonte ( Ctrl+ U). Então você encontrará algo como no código HTML:

<svn version="1.6. ..." ...

2

Navegue no repositório com o Firefox e inspecione o elemento com o Firebug . Na guia NET, você pode verificar o cabeçalho da página. Terá algo como:

Server: Apache/2.2.14 (Win32) DAV/2 SVN/1.X.X

1
Tentei isso com o meu servidor subversion e não vejo a versão. Olhando para outras postagens semelhantes, parece que nem todos os servidores do subversion suportam essa maneira específica de determinar o número da versão do servidor.
Joshua

1

Para o Subversion 1.7 e superior, o servidor não fornece um rodapé que indica a versão do servidor. Mas você pode executar o seguinte comando para obter a versão dos cabeçalhos de resposta

$ curl -s -D - http://svn.server.net/svn/repository
HTTP/1.1 401 Authorization Required
Date: Wed, 09 Jan 2013 03:01:43 GMT
Server: Apache/2.2.9 (Unix) DAV/2 SVN/1.7.4

Note que isso também funciona nos servidores Subversion, nos quais você não tem autorização para acessar.


1

Você pode se conectar ao seu servidor Subversion usando HTTP e encontrar o número da versão no cabeçalho HTTP.


0

Se você usa o VisualSVN Server, pode descobrir o número da versão de várias maneiras diferentes.

Use o VisualSVN Server Manager

Siga estas etapas para descobrir a versão através do console de gerenciamento:

  1. Inicie o console do VisualSVN Server Manager .
  2. Veja a versão no canto inferior direito do painel.

insira a descrição da imagem aqui

Se você clicar em Versão , também verá as versões dos componentes.

insira a descrição da imagem aqui

Verifique o arquivo README.txt

Siga estas etapas para descobrir a versão do arquivo readme.txt:

  1. Inicie o notepad.exe .
  2. Abra o arquivo% VISUALSVN_SERVER% README.txt . A primeira linha mostra o número da versão.

insira a descrição da imagem aqui


-1

O seguinte na linha de comando deve fornecer o número da versão

   svn --version

11
Isso fornece apenas a versão do cliente (a menos que você a execute no servidor). (E mesmo assim, o cliente svn do servidor não é necessariamente a mesma versão que o servidor SVN, embora mais provável é.)
CJM

12
-1 Isso fornece apenas o número do cliente do subversion que não está relacionado ao número do servidor.
Andrea Francia

2
isto é para o cliente. Para o servidor --version versão svnserve
Rajesh

1
svn helpnão foi útil, pois não listou parâmetros começando com dois traços. Encontrei seu post no google ao procurar minha versão svn.
Bernhard Döbler 26/10

-1

Um repositório não é atualizado automaticamente, a menos que o administrador execute 'svnadmin upgrade'. Para ter certeza do número da versão do repositório, verifique o arquivo 'format'. Veja o comentário de @ bdumitriu .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.