Como encontrar o meu número de versão do servidor Subversion?
quero saber se o meu servidor está a correr o Subversion 1.5.
Como posso descobrir isso? Também seria bom saber o número da versão do meu cliente SVN. Não tem sido útil.Nota: não quero o número de revisão do meu projecto, etc. Esta questão é sobre o próprio software Subversion.
16 answers
Para encontrar a versão do repositório subversion, poderá:
- Olhe para o repositório na web e no fundo da página ele vai dizer algo como:
"Powered by Subversion version 1.5.2 (r32768)." - a partir da linha de comandos:
Se não for apresentado, ver o código da Página
<svn version="1.6.13 (r1002816)" href="http://subversion.tigris.org/">
Agora para o cliente subversion:
svn --version
Será suficiente
Para o repositório / servidor (a pergunta original):
Se for capaz de aceder ao servidor Subversion:
-
A partir de uma resposta anterior por Manuel, execute o seguinte no servidor SVN:
svnadmin --version
Se o acesso de HTTP/HTTPS:
Veja a linha "powered by Subversion" ao acessar o servidor através de um navegador.
Acesse o repositório através do navegador e, em seguida, procura o texto da versão incorporado no código HTML. Das respostas anteriores de elviejo e jaredjacobs. Da mesma forma ??, use as ferramentas de desenvolvimento do seu navegador (normalmente Ctrl + Shift + para ler a resposta completa. Esta é também a maneira mais fácil (não automatizada) de lidar com certificados e autorizações-seu navegador faz isso por você.
-
Verifique as marcas de resposta (estas não são mostradas na fonte HTML), a partir de an resposta anterior por Christopher
wget -S --spider 'http://svn.server.net/svn/repository' 2>&1 | sed -n '/SVN/s/.*\(SVN[0-9\/\.]*\).*/\1/p'
Se svn: / / ou SSH+svn access
-
De uma resposta anterior por Milen
svnserve --version (run on svn server)
-
De uma resposta anterior por Glenn
ssh user@host svnserve --version
Se os 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 outros servidores SVN personalizados
TBD
editar por favor para terminar esta resposta
Para o cliente (não o pergunta original):
svn --version
No servidor: svnserve --version
No caso da configuração baseada no svnserve (svn:// e svn+xxx://).
(para completar).
Esta é a maneira mais simples de obter a versão do servidor SVN. HTTP funciona mesmo que o seu repositório de SVN requeira HTTPS.
$ curl -X OPTIONS http://my-svn-domain/ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head>...</head> <body>... <address>Apache/2.2.11 (Debian) DAV/2 SVN/1.5.6 PHP/5.2.9-4 ...</address> </body>
</html>
Para um servidor baseado em HTTP existe um programa em Python para encontrar 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 cliente com
`svn --version`
Se a versão do servidor Subversion não estiver impressa na lista de HTML, está disponível no cabeçalho de resposta HTTP devolvido 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 de SVN necessitar que indique um nome de utilizador e uma senha, então adicione os parâmetros wget
[3]} e --password
ao 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';
Mais uma opção: se tiver o Firefox (estou a usar o 14. 0. 1) e uma interface web SVN:
- Open Tools - >Web Developer - >Web Console on a repo page
- Actualizar a Página
- Clique na linha GET
- Veja os cabeçalhos de respostana secção do servidor: linha
Deve haver uma string" SVN/1.7.4 " ou similar lá. Mais uma vez, isso provavelmente só funcionará se você tiver "ServerTokens cheio" como mencionado acima.
Tenta isto:
ssh your_user@your_server svnserve --version
svnserve, version 1.3.1 (r19032)
compiled May 8 2006, 07:38:44
Espero que ajude.
A última versão onde a versão do servidor realmente fez a diferença para o cliente foi a mudança da versão 1.4 para a versão 1.5 quando o rastreamento de junção foi adicionado. O rastreamento de Merge tinha sido muito melhorado na versão 1.6, mas isso realmente não afeta as interações entre o cliente e o servidor.
Vamos ver as últimas alterações no Subversion 1.8:-
svn move
is now a first class operation : Subversion finally understands thesvn move
is not asvn copy
andsvn delete
. No entanto, isto é algo que o cliente lida e realmente não afeta a versão do servidor. -
svn merge --reintegrate
desactualizado : mais uma vez, desde que o servidor esteja na versão 1.5 ou maior, isto não é um problema. - herança de propriedades : esta é outra actualização de versões 1.8, mas isto irá funcionar com qualquer servidor Subversion -- embora os servidores Subversion a correr 1. 8 irão proporcionar um melhor desempenho nas propriedades hereditárias.
-
duas novas propriedades hereditárias -
svn:global-ignores
esvn:auto-props
: Ai de mim! O que realmente queríamos. Uma forma de configurar estes dois propriedades sem depender do próprio ficheiro de configuração do Subversion. No entanto, este é um problema apenas para o cliente, então novamente não importa que versão do servidor você está usando. - cache de memória gnu-agent : outra funcionalidade apenas para clientes.
- melhorias de desempenho do fsfs e autenticação do authz no repositório. Boas características, mas estas funcionam independentemente da versão do cliente que você está usando.
De todas as características, apenas uma depende da versão do servidor ser 1.5 ou maior (e 1.4 tem sido obsoleto por um bom tempo. As características mais recentes de 1.8 irão melhorar o desempenho de sua cópia de trabalho, mas o servidor está na revisão 1.8 não é necessário. Você é muito mais afetado pela versão do seu cliente do que a versão do seu servidor.
Eu sei que esta 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ê.
Para uma configuração svn+ssh, use o SSH para executar o svnserve -- version na máquina da máquina:
$ SSH user@host svnserve -- version
É necessário executar o comando svnserve na máquina que está de facto a servir como servidor.
Basta usar um navegador web para ir para o endereço SVN. Assinale o código-fonte (Ctrl + to ). Então você vai encontrar algo como no código HTML:
<svn version="1.6. ..." ...
Navegar no repositório com o Firefox e inspeccionar o elemento com Firebug. Sob a página 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
Para o Subversion 1.7 e acima, o servidor não fornece um rodapé que indique 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 isto também funciona em servidores Subversion onde você não tem autorização para acessar.
Você pode ligar-se ao seu servidor Subversion usando HTTP e encontrar o número da versão no cabeçalho HTTP.
Um repositório não é actualizado automaticamente a menos que o administrador execute a 'actualização do svnadmin'. Para ter certeza do número de versão do repositório, verifique o arquivo 'formato'. Veja O Comentário de@bdumitriu .
O seguinte na linha de comandos deve dar-lhe o número da versão
svn --version