¿Cómo encontrar el número de versión de mi servidor Subversion?


292

Quiero saber si mi servidor ejecuta Subversion 1.5.

¿Cómo puedo averiguarlo?

También sería bueno saber mi número de versión de cliente SVN. svn helpno ha sido útil

Nota: No quiero el número de revisión de mi proyecto , etc. Esta pregunta es sobre el software Subversion en sí.

Respuestas:


210

Para encontrar la versión del REPOSITORIO de subversión puedes:

  1. Mire el repositorio en la web y en la parte inferior de la página dirá algo como:
    "Desarrollado por Subversion versión 1.5.2 (r32768)".
  2. Desde la línea de comando: <insertar curl, grep oneliner aquí>

Si no se muestra, ver la fuente de la página

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

Ahora para el cliente subversion:

svn --version

Será suficiente


31
Esto funciona solo si el servidor mostrará esta información, algunos servidores como el alojamiento de código de Google no lo hacen.
Andrea Francia

3
¿Es esa la versión del servidor o la versión del repositorio? (pueden ser diferentes AFAIK)
GraemeF

77
También puede mirar los encabezados de respuesta (usando firebug / net view, por ejemplo) y encontrar la versión SVN allí
haknick

66
CollabNet tampoco muestra un número de versión, ya sea de forma visible o en la fuente de la página.
TenLeftFingers

55
-1: Esperando a que termine esta respuesta (el marcador de posición “<insertar curl, grep oneliner aquí>”). La respuesta no me fue útil de otra manera, ya que el servidor que estoy usando es svn://-only.
Slipp D. Thompson

133

Combinemos estas respuestas:

Para REPOSITORY / SERVER (la pregunta original):

Si puede acceder al servidor de Subversion:

  • De una respuesta anterior de Manuel , ejecute lo siguiente en el servidor SVN:

    svnadmin --version
    

Si tiene acceso HTTP / HTTPS:

  • Consulte la línea "con tecnología de Subversion" cuando acceda al servidor a través de un navegador.

  • Acceda al repositorio a través del navegador y luego busque la cadena de versión incrustada en la fuente HTML. De respuestas anteriores de elviejo y jaredjacobs . Del mismo modo, desde ??, use las herramientas de desarrollo de su navegador (generalmente Ctrl+ Shift+ I) para leer la respuesta completa. Esta es también la forma más fácil (no automatizada) de gestionar certificados y autorizaciones: su navegador lo hace por usted.

  • Verifique las etiquetas de respuesta (no se muestran en la fuente HTML), de una respuesta anterior de Christopher

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

Si svn: // o ssh + svn acceden

Si los servidores SVN de GoogleCode

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

Si otros servidores SVN personalizados

    TBD

Edite para finalizar esta respuesta

Para el CLIENTE (no la pregunta original):

svn --version

Esta respuesta no está clara y svnserve --versiondebe usarse en el servidor. Si se ejecuta en el cliente, proporciona el número de versión del cliente, no el servidor.
Craig McQueen

Esta es una buena colección. Lo hice a modo de "leer la respuesta completa del acceso http / https". En mi caso, puedo ver una línea en el encabezado de respuesta: <Servidor: "Apache / 2.2.14 (Unix) DAV / 2 SVN / 1.6.9 mod_ssl / 2.2.14 OpenSSL / 0.9.8a">
Tatera

En caso de que alguien esté usando Visual SVN Server, las primeras líneas de código HTML (clic derecho, ver código fuente de la página) indicarán la versión SVN.
Raptor

Esta respuesta se está discutiendo en Meta .
Glorfindel

70

En el servidor: svnserve --version

en caso de configuración basada en svnserve (svn: // y svn + xxx: //).

(Por completitud).


Como Joe J menciona a continuación, creo que esto solo le dará la versión del programa cliente svnserve que probablemente coincidirá con el programa cliente svn
Kirby

12
svnserveNo es un programa cliente, es el servidor. Y debe escribir el comando anterior cuando esté en el servidor.
Milen A. Radev

48

Aquí está la forma más sencilla de obtener la versión del servidor SVN. HTTP funciona incluso si su repositorio SVN requiere HTTPS .

$ curl -X OPCIONES http: // my-svn-domain /
<! DOCTYPE HTML PUBLIC "- // IETF // DTD HTML 2.0 // ES">
<html> <head> ... </head>
<cuerpo> ...
<dirección> Apache / 2.2.11 (Debian) DAV / 2 SVN / 1.5.6 PHP / 5.2.9-4 ... </address>
</body> 
</html>

1
Esto es lo que necesitaba. ¡Vota por favor!
bentford el

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

24

Para un servidor basado en HTTP, hay un script de Python para encontrar la versión del servidor en: http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/server-version.py

Puede obtener la versión del cliente con

`svn --version`

55
A menos que me equivoque, parece que ese script solo funciona con servidores basados ​​en http o https, y no con servidores svn o ssh + svn
crashmstr

Si está basado en ssh, simplemente ssh en el cuadro y ejecute "svn --version".
John Meagher

55
'svn --version' en el servidor solo le da la versión del cliente que se ejecuta en el servidor, puede que no sea necesariamente la misma que la versión del servidor
PiedPiper

1
Ese script también requiere que ServerTokens Full se configure en el servidor Apache. Fallará para los mismos servidores en los que fallará la solución curl.
yam655

24

Si la versión del servidor Subversion no está impresa en la lista HTML, está disponible en el encabezado RESPUESTA HTTP devuelto por el servidor. Puedes obtenerlo usando este comando de shell

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

Si el servidor SVN requiere que proporcione un nombre de usuario y contraseña, agregue los wgetparámetros --usery --passwordal 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';

44
Probé todas las demás opciones en esta página, con curl y desde la URL, y hasta ahora es la única que funcionó para mí: el servidor es freebsd, el servidor 1.6.16.
ideasman42

Del mismo modo, esta es la única respuesta que funcionó para mí entre todas las respuestas aquí. Usé Firefox Live HTTP Headers y para leer la respuesta del servidor porque también tenía problemas con el certificado SSL que no tenía ganas de resolver. Gracias Christopher
Kirby

1
@Kirby He añadido un --no-check--certificateparámetro, una --usery --passworda los servidores de la manija que requieren credenciales pero que no tienen un certificado válido ssh. Esto es bastante común como lo notó.
Christopher

1
@ Christopher debería leer '' wget --password = 'contraseña' .. | ..; ' encima.
whaefelinger

@whaefelinger gracias por la corrección. He actualizado la respuesta.
Christopher

8

Una opción más: si tiene Firefox (estoy usando 14.0.1) y una interfaz web SVN:

  • Herramientas abiertas- > Desarrollador web-> Consola web en una página de repositorio
  • Actualizar página
  • Haga clic en la línea OBTENER
  • Mire en la sección Encabezados de respuesta en el servidor: línea

Debe haber una cadena "SVN / 1.7.4" o similar allí. De nuevo, esto probablemente solo funcionará si tiene "ServerTokens Full" como se mencionó anteriormente.


Gracias. Acabo de hacer algo similar en Chrome para un servidor VisualSVN al abrir la pestaña Red en la ventana Herramientas para desarrolladores (presione F12 para acceder a esto) y luego inspeccionar la respuesta.
XåpplI'-I0llwlg'I -

Actualización: haga clic en la pestaña Red en el panel Herramientas antes de actualizar la página (actualmente Firefox 30)
Conrad

7

Realmente no hay una manera fácil de averiguar qué versión de Subversion está ejecutando su servidor, excepto para acceder al servidor y comprobarlo usted mismo.

Sin embargo, esto puede no ser un problema tan grande como puede pensar. Los clientes de Subversion se manejan en gran parte del trabajo pesado, y la mayoría de las versiones de los clientes de Subversion pueden funcionar con casi cualquier versión del servidor.

La última versión donde la versión del servidor realmente marcó una diferencia para el cliente fue el cambio de la versión 1.4 a la versión 1.5 cuando se agregó el seguimiento de fusión. El seguimiento de fusión se ha mejorado enormemente en la versión 1.6, pero eso realmente no afecta las interacciones entre el cliente y el servidor.

Tomemos los últimos cambios en Subversion 1.8:

  • svn moveahora es una operación de primera clase : Subversion finalmente comprende svn moveque no es un svn copyy svn delete. Sin embargo, esto es algo que el cliente maneja y realmente no afecta la versión del servidor.
  • svn merge --reintegrate obsoleto : una vez más, siempre que el servidor tenga la versión 1.5 o superior, esto no es un problema.
  • Herencia de propiedad : esta es otra actualización de la versión 1.8, pero funcionará con cualquier servidor Subversion, aunque los servidores Subversion que ejecutan 1.8 ofrecerán un mejor rendimiento en las propiedades heredables.
  • Dos nuevas propiedades heredables, svn:global-ignoresysvn:auto-props : ¡Ay! Lo que realmente queríamos. Una forma de configurar estas dos propiedades sin depender del archivo de configuración de Subversion. Sin embargo, este es un problema solo del cliente, por lo que nuevamente no importa qué versión del servidor esté utilizando.
  • Almacenamiento en memoria caché de gnu-agent : otra característica exclusiva del cliente.
  • Mejoras de rendimiento de FSFS y autenticación en repositorio authz. Buenas funciones, pero funcionan independientemente de la versión del cliente que esté utilizando.

De todas las características, solo una depende de que la versión del servidor sea 1.5 o superior (y 1.4 ha quedado obsoleta durante bastante tiempo. Las nuevas características de 1.8 mejorarán el rendimiento de su copia de trabajo, pero el servidor está en la revisión 1.8 isn No es necesario. Su versión del cliente le afecta mucho más que la versión de su servidor.

Sé que esta no es la respuesta que querías (no hay una forma oficial de ver la versión del servidor), pero afortunadamente la versión del servidor realmente no te afecta tanto.


7

Prueba esto:

ssh your_user@your_server svnserve --version

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

Espero que ayude.


4

Para una configuración de svn + ssh, use ssh para ejecutar svnserve --version en la máquina host:

$ ssh user @ host svnserve --version

Es necesario ejecutar el comando svnserve en la máquina que realmente sirve como servidor.


1
Esto supone que puede enviar ssh al servidor. Es común configurar un servidor svn + ssh con una clave pública en el archivo autorizado_keys y command = svnserve que inicia automáticamente svnserver sin la opción --version.
jrwren

2

Simplemente use un navegador web para ir a la dirección SVN. Verifique el código fuente ( Ctrl+ U). Luego encontrará algo como en el código HTML:

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

2

Explore el repositorio con Firefox e inspeccione el elemento con Firebug . En la pestaña NET, puede consultar el Encabezado de la página. Tendrá algo como:

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

1
Intenté esto con mi servidor de subversión y no veo la versión. Mirando otras publicaciones que son similares, parece que no todos los servidores de subversión admiten esta forma particular de determinar el número de versión del servidor.
Joshua

1

Para Subversion 1.7 y superior, el servidor no proporciona un pie de página que indique la versión del servidor. Pero puede ejecutar el siguiente comando para obtener la versión de los encabezados de respuesta

$ 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

Tenga en cuenta que esto también funciona en los servidores de Subversion donde no tiene autorización para acceder.


1

Puede conectarse a su servidor de Subversion usando HTTP y encontrar el número de versión en el encabezado HTTP.


0

Si usa VisualSVN Server, puede encontrar el número de versión por varios medios diferentes.

Utilice el Administrador del servidor VisualSVN

Siga estos pasos para averiguar la versión a través de la consola de administración:

  1. Inicie la consola de VisualSVN Server Manager .
  2. Vea la versión en la esquina inferior derecha del tablero.

ingrese la descripción de la imagen aquí

Si hace clic en Versión , también verá las versiones de los componentes.

ingrese la descripción de la imagen aquí

Verifique el archivo README.txt

Siga estos pasos para averiguar la versión del archivo readme.txt:

  1. Inicie notepad.exe .
  2. Abra el archivo% VISUALSVN_SERVER% README.txt . La primera línea muestra el número de versión.

ingrese la descripción de la imagen aquí


-1

Lo siguiente en la línea de comando debería darle el número de versión

   svn --version

11
Eso solo le da la versión del cliente (a menos que la ejecute en el servidor). (Y aún así, el cliente SVN del servidor no es necesariamente la misma versión que el servidor SVN, aunque lo más probable es.)
CJM

12
-1 Esto proporciona solo el número de cliente de subversión que no está relacionado con el número del servidor.
Andrea Francia

2
Esto es para el cliente. Para la versión del servidor svnserve --version
Rajesh

1
svn helpno fue útil ya que no enumeró los parámetros que comienzan con dos guiones. Encontré su publicación a través de google cuando buscaba mi versión svn.
Bernhard Döbler

-1

Un repositorio no se actualiza automáticamente a menos que el administrador ejecute 'svnadmin upgrade'. Para estar seguro del número de versión del repositorio, verifique el archivo 'formato'. Ver el comentario de @ bdumitriu .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.