Subversion sunucusu sürüm numaramı nasıl bulurum?


292

Sunucumun Subversion 1.5 çalıştırıp çalıştırmadığını bilmek istiyorum.

Bunu nasıl öğrenebilirim?

Ayrıca SVN istemci sürüm numaramı bilmek güzel olurdu. svn helpyardımcı olmadı.

Not: Ben istemiyorum projenin vb revizyon numarasını bu soru hakkında Subversion yazılımı kendisi.

Yanıtlar:


210

Subversion REPOSITORY versiyonunu bulmak için:

  1. Web'deki ve sayfanın alt kısmındaki depoya bakın:
    "Powered by Subversion sürüm 1.5.2 (r32768)."
  2. Komut satırından: <curl ekle, grep oneliner here>

Görüntülenmezse sayfanın kaynağını görüntüleyin

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

Şimdi yıkıcı MÜŞTERİ için:

svn --version

yeterli olacak


31
Bu yalnızca sunucu bu bilgileri görüntüleyecekse çalışır, google kod barındırma gibi bazı sunucular göstermez.
Andrea Francia

3
Bu sunucu sürümü mü yoksa depo sürümü mü? (onlar AFAIK farklı olabilir)
GraemeF

7
Ayrıca yanıt başlıklarına da bakabilirsiniz (örneğin kundakçı / net görünümü kullanarak) ve orada SVN sürümünü bulabilirsiniz
haknick

6
CollabNet ayrıca görünür bir şekilde veya sayfanın kaynağında bir sürüm numarası görüntülemez.
TenLeftFingers

5
-1: Bu cevabın bitmesini bekliyorum (“<curl, grep oneliner buraya>” yer tutucu.) Kullandığım sunucu svn://-sadece olduğu için cevap benim için başka türlü yararlı olmadı .
Slipp D. Thompson

133

Bu yanıtları birleştirelim:

REPOSITORY / SERVER (orijinal soru) için:

Subversion sunucusuna erişebiliyorsanız:

  • Manuel tarafından verilen önceki bir yanıttan SVN sunucusunda aşağıdakileri çalıştırın:

    svnadmin --version
    

HTTP / HTTPS erişimi varsa:

  • Bir tarayıcı aracılığıyla sunucuya erişirken "Subversion tarafından desteklenmektedir" satırına bakın.

  • Depoya tarayıcı aracılığıyla erişin ve ardından HTML kaynağına katıştırılmış sürüm dizesini arayın. Gönderen elviejo tarafından önceki cevapları ve jaredjacobs . Benzer şekilde, ??, tam yanıtı okumak için tarayıcınızın geliştirici araçlarını (genellikle Ctrl+ Shift+ I) kullanın. Bu aynı zamanda sertifikalar ve yetkilendirme ile başa çıkmanın en kolay (otomatik olmayan) yoludur - tarayıcınız bunu sizin için yapar.

  • Dan, tepki etiketlerini (bunlar HTML kaynağı gösterilmeyen) kontrol edin önceki bir cevap ile Christopher

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

Svn: // veya ssh + svn erişimi varsa

GoogleCode SVN sunucuları

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

Başka bir özel SVN sunucusu varsa

    TBD

Bu cevabı bitirmek için lütfen düzenleyin

MÜŞTERİ için (orijinal soru değil):

svn --version

Bu cevap svnserve --versionsunucuda kullanılması gerektiği açık değildir . İstemcide çalıştırılırsa, sunucunun değil istemcinin sürüm numarasını verir.
Craig McQueen

Bu iyi bir koleksiyon. "Http / https erişiminin tam yanıtını oku" ile yaptım. Benim durumumda yanıt başlığında bir satır görebilirim: <Sunucu: "Apache / 2.2.14 (Unix) DAV / 2 SVN / 1.6.9 mod_ssl / 2.2.14 OpenSSL / 0.9.8a">
Tatera

Birinin Visual SVN Server kullanması durumunda, HTML kaynağının ilk birkaç satırı (sağ tıklama, Sayfa Kaynağını görüntüle) SVN sürümünü gösterir.
Raptor


70

Sunucuda: svnserve --version

svnserve tabanlı yapılandırma durumunda (svn: // ve svn + xxx: //).

(Tamamlamak için).


Joe J aşağıda belirtildiği gibi, bu sadece size büyük olasılıkla svn istemci programı ile eşleşecek svnserve istemci programının sürümünü verecek inanıyorum
Kirby

12
svnservebir istemci programı değil, sunucudur. Ve sunucudayken yukarıdaki komutu yazmanız gerekir.
Milen A.Radev

48

İşte SVN sunucu sürümünü almanın en basit yolu. HTTP , SVN veri havuzunuz HTTPS gerektirse bile çalışır .

$ curl -X SEÇENEKLERİ http: // my-svn-domain /
<! DOCTYPE HTML KAMU "- // IETF // DTD HTML 2.0 // TR">
<Html> <head> ... </ head>
<Body> ...
<address> Apache / 2.2.11 (Debian) DAV / 2 SVN / 1.5.6 PHP / 5.2.9-4 ... </address>
</body> 
</html>

1
Buna ihtiyacım vardı. Lütfen oy verin!
bentford

8
Yalnızca "ServerTokens Full" ( httpd.apache.org/docs/2.2/mod/core.html#servertokens ) olduğunda çalışır.
Milen A. Radev

24

HTTP tabanlı bir sunucu için http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/server-version.py adresindeki sunucu sürümünü bulmak için bir Python betiği vardır.

İstemci sürümünü alabilirsiniz

`svn --version`

5
Yanılmıyorsam, bu komut dosyası yalnızca http veya https tabanlı sunucularla çalışıyor ve svn veya ssh + svn sunucularıyla çalışmıyor gibi görünüyor
crashmstr

Eğer ssh tabanlı ise sadece ssh kutusuna girip "svn --version" komutunu çalıştırın.
John Meagher

5
sunucudaki 'svn --version' sadece sunucuda çalışan istemci sürümünü verir, sunucu sürümüyle aynı olmayabilir
PiedPiper

1
Bu komut dosyasının ayrıca Apache sunucusunda ServerTokens Full ayarlanması gerekir. Curl çözümünün başarısız olacağı aynı sunucular için başarısız olur.
yam655

24

Subversion sunucusu sürümü HTML listesine yazdırılmazsa, sunucu tarafından döndürülen HTTP RESPONSE başlığında kullanılabilir. Bu kabuk komutunu kullanarak alabilirsiniz

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

SVN sunucusu bir kullanıcı adı ve parola girmenizi gerektiriyorsa, wgetparametreleri --userve --passwordkomuta şu şekilde ekleyin

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
Bu sayfada diğer tüm seçenekleri denedim, curl ve URL'den ve bu şimdiye kadar benim için çalışan tek şey - sunucu freebsd, sunucu 1.6.16.
ideasman42

Aynı şekilde, buradaki tüm cevaplar arasında benim için çalışan tek cevap bu. Firefox Live HTTP Üstbilgileri'ni ve sunucunun yanıtını okumak için kullandım çünkü çözemediğim ssl sertifikası sorunları da yaşadım. Teşekkür ederim, Christopher
Kirby

1
@Kirby Kimlik bilgileri gerektiren ancak geçerli bir ssh sertifikası olmayan sunucuları işlemek için bir --no-check--certificateparametre, a --userve ekledim --password. Bu, belirttiğiniz gibi oldukça yaygındır.
Christopher

1
@Christopher '' wget --password = 'şifre' 'yi okumalı .. | ..; ' Yukarıda.
whaefelinger

@whaefelinger düzeltme için teşekkürler. Cevabı güncelledim.
Christopher

8

Bir seçenek daha: Firefox (14.0.1 kullanıyorum) ve bir SVN web arayüzünüz varsa:

  • Repo sayfasında Araçlar-> Web Geliştiricisi-> Web Konsolu'nu açın
  • Sayfayı yenile
  • GET satırını tıklayın
  • Bak Yanıt Başlıkları at bölüm Sunucusu: çizgi

Orada bir "SVN / 1.7.4" dizesi veya benzeri olmalıdır. Yine, bu muhtemelen sadece yukarıda belirtildiği gibi "ServerTokens Full" varsa çalışır.


Teşekkürler. Bir VisualSVN sunucusu için Chrome'da, Geliştirici Araçları penceresinde Ağ sekmesini açarak (buna erişmek için F12'ye basın) ve ardından yanıtı inceleyerek benzer bir şey yaptım.
XåpplI'-I0llwlg'I -

Güncelleme: sayfayı yenilemeden önce Araçlar bölmesindeki Ağ sekmesini tıklayın (şu anda Firefox 30)
Conrad

7

Gerçekten bir şey yok kolay sunucu üzerine almak ve kendiniz görün dışında - sunucu nelerin çalıştığını Subversion'ın sürümü öğrenmek için bir yol.

Ancak, bu düşündüğünüz kadar büyük bir sorun olmayabilir. Subversion istemcileri, homurdanan işlerin çoğunun işlendiği ve Subversion istemcilerinin çoğu sürümü sunucunun hemen hemen her sürümüyle çalışabilir.

Sunucu sürümünün istemcide gerçekten bir fark yarattığı son sürüm, birleştirme izleme eklendiğinde sürüm 1.4'ten sürüm 1.5'e geçişti. Birleştirme izleme, sürüm 1.6'da büyük ölçüde geliştirildi, ancak bu, istemci ve sunucu arasındaki etkileşimleri gerçekten etkilemez.

Subversion 1.8'deki en son değişiklikleri alalım:

  • svn moveartık birinci sınıf bir işlemdir : Subversion nihayet svn movebir svn copyve olmadığını anlar svn delete. Ancak bu, istemcinin işlediği ve sunucu sürümünü gerçekten etkilemediği bir şeydir.
  • svn merge --reintegratekullanımdan kaldırıldı : Yine, sunucu sürüm 1.5 veya üstü olduğu sürece bu bir sorun değildir.
  • Özellik Devralma : Bu başka bir 1.8 sürüm güncellemesidir, ancak 1.8 sürümü çalıştıran Subversion sunucuları devralınabilen mülklerde daha iyi performans sunmasına rağmen, bu herhangi bir Subversion sunucusuyla çalışır.
  • İki yeni kalıtsal özellik - svn:global-ignoresvesvn:auto-props : Ne yazık ki! Gerçekten ne istedik. Subversion yapılandırma dosyasının kendisine bağlı olmadan bu iki özelliği kurmanın bir yolu. Ancak, bu yalnızca istemci için bir sorundur, bu nedenle sunucunun hangi sürümünü kullandığınız önemli değildir.
  • gnu-agent bellek önbelleğe alma : Başka bir istemci özelliği.
  • fsfs performans geliştirmeleri ve authz veri havuzu kimlik doğrulaması. Güzel özellikler, ancak bunlar istemcinin hangi sürümünü kullanırsanız kullanın çalışır.

Tüm özelliklerden sadece biri, sunucunun sürümünün 1.5 veya daha yüksek olmasına bağlıdır (ve 1.4 bir süredir kullanılmamaktadır. 1.8'in daha yeni özellikleri, çalışma kopyanızın performansını artıracaktır, ancak sunucu 1.8 sürümünde değil. İstemci sürümünüzden sunucu sürümünüzden çok daha fazla etkilenirsiniz.

Bunun istediğin cevap olmadığını biliyorum (sunucu sürümünü görmenin resmi bir yolu yok), ama neyse ki sunucu sürümü seni gerçekten bu kadar etkilemiyor.


7

Bunu dene:

ssh your_user@your_server svnserve --version

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

Umut ediyorum bu yardım eder.


4

Svn + ssh yapılandırması için, ana makinede svnserve --version komutunu çalıştırmak için ssh komutunu kullanın:

$ ssh user @ host svnserve - sürüm

Sunucu olarak hizmet veren makinede svnserve komutunu çalıştırmak gerekir.


1
bu sunucuya ssh yapabileceğinizi varsayar. Svn + ssh sunucusunu, --version seçeneği olmadan svnserver'ı otomatik olarak başlatan authority_keys dosyasında ve command = svnserve'de ortak anahtarla yapılandırmak yaygındır.
jrwren

2

SVN adresine gitmek için bir web tarayıcısı kullanmanız yeterlidir. Kaynak kodunu kontrol edin ( Ctrl+ U). Sonra HTML kodunda benzer bir şey bulacaksınız:

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

2

Firefox ile depoya göz atın ve öğeyi Firebug ile inceleyin . NET sekmesi altında sayfanın Üstbilgisini kontrol edebilirsiniz. Gibi bir şey olacak:

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

1
Bunu subversion sunucumla denedim ve sürümü görmüyorum. Benzer diğer yayınlara bakıldığında, tüm alt sürüm sunucularının sunucu sürüm numarasını belirlemenin bu özel yolunu desteklemediği anlaşılıyor.
Joshua

1

Subversion 1.7 ve üstü için, sunucu sunucu sürümünü belirten bir altbilgi sağlamaz. Ancak sürümü yanıt başlıklarından edinmek için aşağıdaki komutu çalıştırabilirsiniz

$ 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

Bunun, erişim yetkiniz olmayan Subversion sunucularında da çalıştığını unutmayın.


1

Subversion sunucunuza HTTP kullanarak bağlanabilir ve HTTP başlığında sürüm numarasını bulabilirsiniz.


0

VisualSVN Server kullanıyorsanız, sürüm numarasını birkaç farklı yolla öğrenebilirsiniz.

VisualSVN Sunucu Yöneticisi'ni kullanma

Sürümü yönetim konsolu üzerinden bulmak için şu adımları izleyin:

  1. Başlangıç VisualSVN Sunucu Yöneticisi konsolunu.
  2. Bkz Sürüm pano sağ alt köşesinde.

resim açıklamasını buraya girin

Sürüm'ü tıklatırsanız , bileşenlerin sürümlerini de görürsünüz.

resim açıklamasını buraya girin

README.txt dosyasını kontrol edin

Benioku.txt dosyasındaki sürümü bulmak için şu adımları izleyin:

  1. Başlangıç notepad.exe .
  2. % VISUALSVN_SERVER% README.txt dosyasını. İlk satır sürüm numarasını gösterir.

resim açıklamasını buraya girin


-1

Komut satırında aşağıdakiler sürüm numarasını vermelidir

   svn --version

11
Bu yalnızca istemcinin sürümünü verir (sunucuda çalıştırmadığınız sürece). (Ve o zaman bile, sunucunun svn istemcisi, büyük olasılıkla olmasına rağmen, svn sunucusuyla aynı sürüm olmayabilir.)
cjm

12
-1 Bu sadece sunucu numarası ile ilgili olmayan alt sürüm istemci numarasını verir.
Andrea Francia

2
bu müşteri için. Sunucu sürümü için svnserve
Rajesh

1
svn helpiki tire ile başlayan parametreleri listelemediği için yardımcı olmadı. Svn sürümümü ararken yayınınızı google üzerinden buldum.
Bernhard Döbler

-1

Yönetici 'svnadmin yükseltmesi' çalıştırmadığı sürece bir havuz otomatik olarak güncellenmez. Deponun sürüm numarasından emin olmak için 'format' dosyasını kontrol edin. @ Bdumitriu'nun yorumuna bakınız .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.