Comment trouver le numéro de version de mon serveur Subversion?

292

Je veux savoir si mon serveur exécute Subversion 1.5.

Comment puis-je le savoir?

Serait également bien de connaître mon numéro de version du client SVN. svn helpn'a pas été utile.

Remarque: je ne veux pas le numéro de révision de mon projet , etc. Cette question concerne le logiciel Subversion lui-même.

Peter Mortensen
la source

Réponses:

210

Pour trouver la version du dépôt de subversion, vous pouvez:

  1. Regardez le référentiel sur le web et au bas de la page, il dira quelque chose comme:
    "Powered by Subversion version 1.5.2 (r32768)."
  2. À partir de la ligne de commande: <insérer curl, grep oneliner ici>

S'il n'est pas affiché, afficher la source de la page

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

Maintenant pour le CLIENT de subversion:

svn --version

suffira

Communauté
la source
31
Cela ne fonctionne que si le serveur affiche ces informations, contrairement à certains serveurs comme l'hébergement de code Google.
Andrea Francia
3
Est-ce la version du serveur ou la version du référentiel? (ils peuvent être différents AFAIK)
GraemeF
7
Vous pouvez également consulter les en-têtes de réponse (en utilisant par exemple Firebug / Net View) et y trouver la version SVN
haknick
6
CollabNet n'affiche pas non plus de numéro de version - que ce soit visiblement ou dans la source de la page.
TenLeftFingers
5
-1: En attente de la fin de cette réponse (l'espace réservé «<insert curl, grep oneliner here>».) La réponse ne m'a pas été utile autrement, car le serveur que j'utilise est svn://-only.
Slipp D. Thompson,
133

Fusionnons ces réponses:

Pour REPOSITORY / SERVER (la question d'origine):

Si vous pouvez accéder au serveur Subversion:

  • À partir d'une réponse antérieure de Manuel , exécutez ce qui suit sur le serveur SVN:

    svnadmin --version
    

Si accès HTTP / HTTPS:

  • Voir la ligne "powered by Subversion" lors de l'accès au serveur via un navigateur.

  • Accédez au référentiel via un navigateur, puis recherchez la chaîne de version intégrée dans la source HTML. D'après les réponses précédentes d'Elviejo et de Jaredjacobs . De même, à partir de ??, utilisez les outils de développement de votre navigateur (généralement Ctrl+ Shift+ I) pour lire la réponse complète. C'est également le moyen le plus simple (non automatisé) de gérer les certificats et les autorisations - votre navigateur le fait pour vous.

  • Vérifiez les balises de réponse (elles ne sont pas affichées dans la source HTML), à partir d' une réponse antérieure de Christopher

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

Si accès svn: // ou ssh + svn

Si les serveurs SVC 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 un autre serveur SVN personnalisé

    TBD

Veuillez modifier pour terminer cette réponse

Pour le CLIENT (pas la question d'origine):

svn --version
Lars Nordin
la source
Cette réponse n'est pas claire qui svnserve --versiondoit être utilisée sur le serveur. S'il est exécuté sur le client, il donne le numéro de version du client, pas le serveur.
Craig McQueen
Ceci est une bonne collection. Je l'ai fait en "lisant la réponse complète depuis l'accès http / https". Dans mon cas, je peux voir une ligne dans l'en-tête de réponse: <Serveur: "Apache / 2.2.14 (Unix) DAV / 2 SVN / 1.6.9 mod_ssl / 2.2.14 OpenSSL / 0.9.8a">
Tatera
Dans le cas où quelqu'un utilise Visual SVN Server, les premières lignes de la source HTML (clic droit, afficher la source de la page) indiqueront la version SVN.
Raptor
Cette réponse est en cours de discussion sur Meta .
Glorfindel
70

Sur le serveur: svnserve --version

en cas de configuration basée sur svnserve (svn: // et svn + xxx: //).

(Pour être complet).

Milen A. Radev
la source
Comme Joe J le mentionne ci-dessous, je pense que cela vous donnera simplement la version du programme client svnserve qui correspondra très probablement au programme client svn
Kirby
12
svnserven'est pas un programme client, c'est le serveur. Et vous devez taper la commande ci-dessus lorsque vous êtes sur le serveur.
Milen A. Radev,
48

Voici le moyen le plus simple d'obtenir la version du serveur SVN. HTTP fonctionne même si votre référentiel SVN nécessite HTTPS .

$ curl -X OPTIONS http: // mon-domaine-svn /
<! 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>
jaredjacobs
la source
1
Voilà ce dont j'avais besoin. Votez s'il vous plaît!
bentford
8
Fonctionne uniquement lorsque "ServerTokens Full" ( httpd.apache.org/docs/2.2/mod/core.html#servertokens ).
Milen A. Radev,
24

Pour un serveur HTTP, il existe un script Python pour trouver la version du serveur à: http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/server-version.py

Vous pouvez obtenir la version client avec

`svn --version`
PiedPiper
la source
5
À moins que je ne me trompe, il semble que ce script ne fonctionne qu'avec des serveurs basés sur http ou https, et non sur des serveurs svn ou ssh + svn
crashmstr
S'il est basé sur ssh, il suffit de mettre ssh dans la boîte et d'exécuter "svn --version".
John Meagher
5
'svn --version' sur le serveur ne vous donne que la version client en cours d'exécution sur le serveur, ce n'est peut-être pas nécessairement la même que la version serveur
PiedPiper
1
Ce script nécessite également que ServerTokens Full soit défini sur le serveur Apache. Il échouera pour les mêmes serveurs sur lesquels la solution curl échouera.
yam655
24

Si la version du serveur Subversion n'est pas imprimée dans la liste HTML, elle est disponible dans l'en-tête HTTP RESPONSE renvoyé par le serveur. Vous pouvez l'obtenir en utilisant cette commande 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 le serveur SVN nécessite que vous fournissiez un nom d'utilisateur et un mot de passe, ajoutez les wgetparamètres --useret --passwordla commande comme ceci

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';
Christophe
la source
4
J'ai essayé toutes les autres options sur cette page, avec curl et à partir de l'URL et c'est jusqu'à présent la seule qui a fonctionné pour moi - le serveur est freebsd, serveur 1.6.16.
ideasman42
De même, c'est la seule réponse qui a fonctionné pour moi parmi toutes les réponses ici. J'ai utilisé les en-têtes HTTP de Firefox Live et pour lire la réponse du serveur parce que j'avais également des problèmes de certificat SSL que je n'avais pas envie d'aller chercher la difficulté. Merci, Christopher
Kirby
1
@Kirby J'ai ajouté un --no-check--certificateparamètre, a --useret --passwordpour gérer les serveurs qui nécessitent des informations d'identification mais qui n'ont pas de certificat ssh valide. C'est assez courant comme vous l'avez noté.
Christopher
1
@Christopher, il devrait lire '' wget --password = 'mot de passe' .. | ..; » au dessus.
whaefelinger
@whaefelinger merci pour la correction. J'ai mis à jour la réponse.
Christopher
8

Une autre option: si vous avez Firefox (j'utilise 14.0.1) et une interface Web SVN:

  • Ouvrez Outils-> Développeur Web-> Console Web sur une page de dépôt
  • Rafraîchir la page
  • Cliquez sur GET ligne
  • Regardez dans la section En- têtes de réponse sur la ligne Serveur:

Il devrait y avoir une chaîne "SVN / 1.7.4" ou similaire. Encore une fois, cela ne fonctionnera probablement que si vous avez "ServerTokens Full" comme mentionné ci-dessus.

Conrad
la source
Merci. Je viens de faire une chose similaire dans Chrome pour un serveur VisualSVN en ouvrant l'onglet Réseau dans la fenêtre des outils de développement (appuyez sur F12 pour y accéder), puis en inspectant la réponse.
XåpplI'-I0llwlg'I -
Mise à jour: cliquez sur l'onglet Réseau dans le volet Outils avant d'actualiser la page (actuellement Firefox 30)
Conrad
7

Il n'y a vraiment pas de moyen facile de savoir quelle version de Subversion votre serveur exécute - sauf pour accéder au serveur et voir par vous-même.

Cependant, ce n'est peut-être pas un problème aussi important que vous ne le pensez. Les clients Subversion sont une grande partie du travail de grognement est géré, et la plupart des versions des clients Subversion peuvent fonctionner avec presque toutes les versions du serveur.

La dernière version où la version du serveur a vraiment fait la différence pour le client a été le changement de la version 1.4 à la version 1.5 lorsque le suivi de la fusion a été ajouté. Le suivi des fusions a été considérablement amélioré dans la version 1.6, mais cela n'affecte pas vraiment les interactions entre le client et le serveur.

Prenons les derniers changements de Subversion 1.8:

  • svn moveest maintenant une opération de première classe : Subversion comprend enfin le svn moven'est pas un svn copyet svn delete. Cependant, c'est quelque chose que le client gère et n'affecte pas vraiment la version du serveur.
  • svn merge --reintegrateobsolète : Encore une fois, tant que le serveur est à la version 1.5 ou supérieure, ce n'est pas un problème.
  • Héritage des propriétés : il s'agit d'une autre mise à jour de la version 1.8, mais cela fonctionnera avec n'importe quel serveur Subversion - bien que les serveurs Subversion exécutant 1.8 fourniront de meilleures performances sur les propriétés héritables.
  • Deux nouvelles propriétés héritables - svn:global-ignoresetsvn:auto-props : Hélas! Ce que nous voulions vraiment. Un moyen de configurer ces deux propriétés sans dépendre du fichier de configuration Subversion lui-même. Cependant, il s'agit d'un problème uniquement client, donc encore une fois, peu importe la version du serveur que vous utilisez.
  • mise en cache de la mémoire gnu-agent : une autre fonctionnalité réservée au client.
  • améliorations des performances fsfs et authentification authz dans le référentiel. Belles fonctionnalités, mais celles-ci fonctionnent quelle que soit la version du client que vous utilisez.

De toutes les fonctionnalités, une seule dépend de la version du serveur 1.5 ou supérieure (et 1.4 est obsolète depuis un bon moment. Les nouvelles fonctionnalités de 1.8 amélioreront les performances de votre copie de travail, mais le serveur étant à la révision 1.8 isn pas nécessaire. Vous êtes beaucoup plus affecté par votre version client que votre version serveur.

Je sais que ce n'est pas la réponse que vous vouliez (aucun moyen officiel de voir la version du serveur), mais heureusement, la version du serveur ne vous affecte pas vraiment beaucoup.

David W.
la source
7

Essaye ça:

ssh your_user@your_server svnserve --version

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

J'espère que ça aide.

ejaenv
la source
4

Pour une configuration svn + ssh, utilisez ssh pour exécuter svnserve --version sur la machine hôte:

$ ssh user @ host svnserve --version

Il est nécessaire d'exécuter la commande svnserve sur la machine qui sert réellement de serveur.

Glenn
la source
1
cela suppose que vous pouvez ssh sur le serveur. Il est courant de configurer un serveur svn + ssh avec une clé publique dans le fichier authorized_keys et command = svnserve qui démarre automatiquement svnserver sans l'option --version.
jrwren
2

Utilisez simplement un navigateur Web pour accéder à l'adresse SVN. Vérifiez le code source ( Ctrl+ U). Ensuite, vous trouverez quelque chose comme dans le code HTML:

<svn version="1.6. ..." ...
N0thing
la source
2

Parcourez le référentiel avec Firefox et inspectez l'élément avec Firebug . Sous l'onglet NET, vous pouvez vérifier l'en-tête de la page. Il aura quelque chose comme:

Server: Apache/2.2.14 (Win32) DAV/2 SVN/1.X.X
Jason H
la source
1
J'ai essayé cela avec mon serveur subversion et je ne vois pas la version. En regardant d'autres publications similaires, il semble que tous les serveurs Subversion ne prennent pas en charge cette façon particulière de déterminer le numéro de version du serveur.
Joshua
1

Pour Subversion 1.7 et supérieur, le serveur ne fournit pas de pied de page indiquant la version du serveur. Mais vous pouvez exécuter la commande suivante pour obtenir la version des en-têtes de réponse

$ 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

Notez que cela fonctionne également sur les serveurs Subversion où vous n'avez pas d'autorisation d'accès.

mettkea
la source
1

Vous pouvez vous connecter à votre serveur Subversion via HTTP et trouver le numéro de version dans l'en-tête HTTP.

eaubin
la source
0

Si vous utilisez VisualSVN Server, vous pouvez connaître le numéro de version de plusieurs manières différentes.

Utilisez VisualSVN Server Manager

Suivez ces étapes pour découvrir la version via la console de gestion:

  1. Démarrez le gestionnaire de serveur VisualSVN console .
  2. Voir la version dans le coin inférieur droit du tableau de bord.

entrez la description de l'image ici

Si vous cliquez sur Version, vous verrez également les versions des composants.

entrez la description de l'image ici

Vérifiez le fichier README.txt

Suivez ces étapes pour connaître la version du fichier readme.txt:

  1. Démarrez notepad.exe .
  2. Ouvrez le fichier% VISUALSVN_SERVER% README.txt . La première ligne affiche le numéro de version.

entrez la description de l'image ici

bahrep
la source
-1

Ce qui suit sur la ligne de commande devrait vous donner le numéro de version

   svn --version
Paul Wicks
la source
11
Cela vous donne uniquement la version du client (sauf si vous l'exécutez sur le serveur). (Et même alors, le client svn du serveur n'est pas nécessairement la même version que le serveur svn, bien que ce soit probablement le cas.)
cjm
12
-1 Cela donne uniquement le numéro de client subversion qui n'est pas lié au numéro de serveur.
Andrea Francia
2
c'est pour le client. Pour la version du serveur svnserve --version
Rajesh
1
svn helpn'était pas utile car il ne listait pas les paramètres commençant par deux tirets. Trouvé votre message via google lors de la recherche de ma version svn.
Bernhard Döbler
-1

Un référentiel n'est pas automatiquement mis à jour sauf si l'administrateur exécute la «mise à niveau svnadmin». Pour être sûr du numéro de version du référentiel, vérifiez le fichier «format». Voir le commentaire de @ bdumitriu .

icasimpan
la source