Come trovare il numero di versione del mio server Subversion?


292

Voglio sapere se il mio server esegue Subversion 1.5.

Come posso scoprirlo?

Inoltre sarebbe bello conoscere il mio numero di versione del client SVN. svn helpnon è stato utile.

Nota: non desidero il numero di revisione del mio progetto , ecc. Questa domanda riguarda lo stesso software Subversion .

Risposte:


210

Per trovare la versione del REPOSITORY di sovversione puoi:

  1. Guarda il repository sul web e nella parte inferiore della pagina dirà qualcosa del tipo:
    "Powered by Subversion versione 1.5.2 (r32768)."
  2. Dalla riga di comando: <inserisci curl, grep oneliner qui>

Se non visualizzato, visualizza l'origine della pagina

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

Ora per il CLIENTE sovversione:

svn --version

sarà sufficiente


31
Questo funziona solo se il server visualizzerà queste informazioni, alcuni server come l'hosting di codice google no.
Andrea Francia,

3
È la versione del server o la versione del repository? (possono essere diversi AFAIK)
GraemeF

7
Puoi anche guardare le intestazioni di risposta (usando firebug / net view per es.) E trovare la versione SVN lì
dentro

6
CollabNet inoltre non visualizza un numero di versione, né in modo visibile né nella fonte della pagina.
TenLeftFingers

5
-1: Aspettando che questa risposta sia terminata (il segnaposto "<inserire arricciatura, grep oneliner qui>"). La risposta non mi è stata utile altrimenti, poiché il server che sto usando è svn://-solo.
Slipp D. Thompson,

133

Uniamo queste risposte:

Per REPOSITORY / SERVER (la domanda originale):

Se in grado di accedere al server Subversion:

  • Da una risposta precedente di Manuel , eseguire quanto segue sul server SVN:

    svnadmin --version
    

Se l'accesso HTTP / HTTPS:

  • Vedere la riga "powered by Subversion" quando si accede al server tramite un browser.

  • Accedi al repository tramite browser e cerca la stringa di versione incorporata nel sorgente HTML. Dalle risposte precedenti di elviejo e jaredjacobs . Allo stesso modo, da ??, usa gli strumenti di sviluppo del tuo browser (di solito Ctrl+ Shift+ I) per leggere la risposta completa. Questo è anche il modo più semplice (non automatizzato) di gestire certificati e autorizzazioni: il tuo browser lo fa per te.

  • Controlla i tag di risposta (questi non sono mostrati nel sorgente HTML), da una precedente risposta di Christopher

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

Se svn: // o ssh + svn accedono

Se server 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?

Se un altro server SVN personalizzato

    TBD

Modifica per completare questa risposta

Per CLIENTE (non la domanda originale):

svn --version

Questa risposta non è chiara che svnserve --versiondeve essere utilizzata sul server. Se viene eseguito sul client, fornisce il numero di versione del client, non del server.
Craig McQueen, il

Questa è una buona collezione. L'ho fatto per mezzo di "leggere la risposta completa dall'accesso http / https". Nel mio caso vedo una riga nell'intestazione della risposta: <Server: "Apache / 2.2.14 (Unix) DAV / 2 SVN / 1.6.9 mod_ssl / 2.2.14 OpenSSL / 0.9.8a">
Tatera

Nel caso in cui qualcuno stia utilizzando Visual SVN Server, le prime righe di sorgente HTML (tasto destro, visualizza sorgente pagina) indicheranno la versione SVN.
Raptor

Questa risposta è in discussione su Meta .
Glorfindel,

70

Sul server: svnserve --version

in caso di configurazione basata su svnserve (svn: // e svn + xxx: //).

(Per completezza).


Come menziona Joe J sotto, credo che questo ti darà solo la versione del programma client svnserve che molto probabilmente corrisponderà al programma client svn
Kirby,

12
svnservenon è un programma client, è il server. E devi digitare il comando sopra quando sei sul server.
Milen A. Radev,

48

Ecco il modo più semplice per ottenere la versione del server SVN. HTTP funziona anche se il tuo repository SVN richiede HTTPS .

$ curl -X OPZIONI http: // my-svn-domain /
<! DOCTYPE HTML PUBLIC "- // IETF // DTD HTML 2.0 // EN">
<Html> <head> ... </ head>
<Body> ...
<indirizzo> Apache / 2.2.11 (Debian) DAV / 2 SVN / 1.5.6 PHP / 5.2.9-4 ... </indirizzo>
</body> 
</html>

1
Questo è quello di cui avevo bisogno. Vota per favore!
Bentford,

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

24

Per un server basato su HTTP esiste uno script Python per trovare la versione del server su: http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/server-version.py

È possibile ottenere la versione client con

`svn --version`

5
A meno che non mi sbagli, sembra che lo script funzioni solo con server basati su http o https e non con server svn o ssh + svn
crashmstr

Se è basato su ssh, basta inserire ssh nella casella ed eseguire "svn --version".
John Meagher,

5
'svn --version' sul server ti dà solo la versione client in esecuzione sul server, potrebbe non essere necessariamente la stessa della versione server
PiedPiper

1
Tale script richiede inoltre che ServerTokens Full sia impostato sul server Apache. Fallirà per gli stessi server su cui la soluzione arricciatura non riuscirà.
yam655,

24

Se la versione del server Subversion non è stampata nell'elenco HTML, è disponibile nell'intestazione HTTP RESPONSE restituita dal server. Puoi ottenerlo usando questo 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 il server SVN richiede di fornire un nome utente e una password, quindi aggiungere i wgetparametri --usere --passwordal comando in questo modo

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
Ho provato tutte le altre opzioni su questa pagina, con curl e dall'URL e questo è finora l'unico che ha funzionato per me - server è freebsd, server 1.6.16.
ideasman42

Allo stesso modo questa è l'unica risposta che ha funzionato per me tra tutte le risposte qui. Ho usato le intestazioni HTTP Live di Firefox e per leggere la risposta del server perché avevo anche problemi con i certificati SSL che non avevo voglia di capire. Grazie, Christopher
Kirby,

1
@Kirby Ho aggiunto un --no-check--certificateparametro, un --usere --passwordai server maniglia che richiedono credenziali, ma non hanno un certificato ssh valido. Questo è abbastanza comune come hai notato.
Christopher

1
@Christopher dovrebbe leggere '' wget --password = 'password' .. | ..; ' sopra.
whaefelinger,

@whaefelinger grazie per la correzione. Ho aggiornato la risposta.
Christopher,

8

Un'altra opzione: se hai Firefox (sto usando 14.0.1) e un'interfaccia web SVN:

  • Apri Strumenti-> Sviluppatore Web-> Console Web in una pagina repository
  • Aggiorna pagina
  • Fai clic sulla riga OTTIENI
  • Guarda nella sezione Header di risposta sul Server: linea

Dovrebbe esserci una stringa "SVN / 1.7.4" o simile lì. Ancora una volta, questo probabilmente funzionerà solo se hai "ServerTokens Full" come menzionato sopra.


Grazie. Ho appena fatto una cosa simile in Chrome per un server VisualSVN aprendo la scheda Rete nella finestra Strumenti di sviluppo (premi F12 per accedervi), quindi ispezionando la risposta.
XåpplI'-I0llwlg'I -

Aggiornamento: fare clic sulla scheda Rete nel riquadro Strumenti prima di aggiornare la pagina (attualmente Firefox 30)
Conrad

7

Non c'è davvero un modo semplice per scoprire quale versione di Subversion è in esecuzione sul tuo server - se non per accedere al server e vedere di persona.

Tuttavia, questo potrebbe non essere un grosso problema come potresti pensare. I client Subversion sono stati gestiti in gran parte dal lavoro sporco e la maggior parte delle versioni dei client Subversion possono funzionare con quasi tutte le versioni del server.

L'ultima versione in cui la versione del server ha davvero fatto la differenza per il client è stata la modifica dalla versione 1.4 alla versione 1.5 quando è stato aggiunto il monitoraggio delle unioni. Il monitoraggio delle unioni è stato notevolmente migliorato nella versione 1.6, ma ciò non influisce realmente sulle interazioni tra client e server.

Prendiamo le ultime modifiche in Subversion 1.8:

  • svn moveè ora un'operazione di prima classe : Subversion finalmente capisce che svn movenon è un svn copye svn delete. Tuttavia, questo è qualcosa che il client gestisce e non influisce realmente sulla versione del server.
  • svn merge --reintegratedeprecato : di nuovo, purché il server sia alla versione 1.5 o successiva, questo non è un problema.
  • Ereditarietà delle proprietà : questo è un altro aggiornamento della versione 1.8, ma funzionerà con qualsiasi server Subversion, sebbene i server Subversion che eseguono 1.8 offriranno prestazioni migliori sulle proprietà ereditabili.
  • Due nuove proprietà ereditabili - svn:global-ignoresesvn:auto-props : Ahimè! Quello che volevamo davvero. Un modo per impostare queste due proprietà senza dipendere dal file di configurazione Subversion stesso. Tuttavia, questo è un problema solo client, quindi non importa quale versione del server stai utilizzando.
  • memorizzazione nella memoria gnu-agent : un'altra funzione solo client.
  • miglioramenti delle prestazioni di fsfs e autenticazione in repository authz. Funzionalità interessanti, ma funzionano indipendentemente dalla versione del client in uso.

Di tutte le funzionalità, solo una dipende dal fatto che la versione del server sia 1.5 o successiva (e 1.4 è obsoleta da un po 'di tempo. Le nuove funzionalità di 1.8 miglioreranno le prestazioni della tua copia di lavoro, ma il server in revisione 1.8 non è è necessario. Sei molto più interessato dalla versione del tuo client che dalla versione del tuo server.

So che questa non è la risposta che volevi (nessun modo ufficiale per vedere la versione del server), ma fortunatamente la versione del server non ti influenza molto.


7

Prova questo:

ssh your_user@your_server svnserve --version

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

Spero possa essere d'aiuto.


4

Per una configurazione svn + ssh, utilizzare ssh per eseguire svnserve --version sul computer host:

$ ssh user @ host svnserve --version

È necessario eseguire il comando svnserve sul computer che funge effettivamente da server.


1
questo presuppone che tu possa ssh al server. È comune configurare un server svn + ssh con una chiave pubblica nel file authorized_keys e command = svnserve che avvia automaticamente svnserver senza l'opzione --version.
jrwren,

2

Basta usare un browser Web per accedere all'indirizzo SVN. Controlla il codice sorgente ( Ctrl+ U). Quindi troverai qualcosa di simile nel codice HTML:

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

2

Sfoglia il repository con Firefox e ispeziona l'elemento con Firebug . Nella scheda NET, puoi controllare l'intestazione della pagina. Avrà qualcosa come:

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

1
Ho provato questo con il mio server Subversion e non vedo la versione. Guardando altri post simili sembra che non tutti i server di sovversione supportino questo particolare modo di determinare il numero di versione del server.
Giosuè,

1

Per Subversion 1.7 e versioni successive, il server non fornisce un piè di pagina che indica la versione del server. Ma puoi eseguire il comando seguente per ottenere la versione dalle intestazioni di risposta

$ 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

Nota che questo funziona anche su server Subversion a cui non sei autorizzato ad accedere.


1

Puoi connetterti al tuo server Subversion usando HTTP e trovare il numero di versione nell'intestazione HTTP.


0

Se si utilizza VisualSVN Server, è possibile scoprire il numero di versione in diversi modi.

Utilizzare VisualSVN Server Manager

Seguire questi passaggi per scoprire la versione tramite la console di gestione:

  1. Avviare la console di VisualSVN Server Manager .
  2. Vedi la versione nell'angolo in basso a destra della dashboard.

inserisci qui la descrizione dell'immagine

Se fai clic su Versione vedrai anche le versioni dei componenti.

inserisci qui la descrizione dell'immagine

Controllare il file README.txt

Seguire questi passaggi per scoprire la versione dal file readme.txt:

  1. Avviare notepad.exe .
  2. Apri il file % VISUALSVN_SERVER% README.txt . La prima riga mostra il numero di versione.

inserisci qui la descrizione dell'immagine


-1

Quanto segue sulla riga di comando dovrebbe fornire il numero di versione

   svn --version

11
Questo ti dà solo la versione del client (a meno che tu non lo esegua sul server). (E anche allora, il client svn del server non è necessariamente la stessa versione del server svn, anche se molto probabilmente lo è.)
cjm,

12
-1 Questo fornisce solo il numero del client di sovversione che non è correlato al numero del server.
Andrea Francia,

2
questo è per il cliente. Per la versione server svnserve --version
Rajesh

1
svn helpnon è stato utile in quanto non ha elencato i parametri che iniziano con due trattini. Ho trovato il tuo post tramite Google quando cercavo la mia versione svn.
Bernhard Döbler,

-1

Un repository non viene aggiornato automaticamente a meno che l'amministratore non esegua "svnadmin upgrade". Per essere sicuri del numero di versione del repository, controllare il file 'format'. Vedi il commento di @ bdumitriu .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.