2009-09-01 9 views
67

Na przykład klient SVN 1.5 ma jeden układ dla kopii roboczych, a klient SVN 1.6 ma inny układ. Rozumiem, że układ jest automatycznie aktualizowany, gdy zostanie dotknięty przez nowszego klienta.Jak określić wersję arkusza roboczego wersji SVN?

Jeśli mam kopię roboczą w moim systemie, w jaki sposób mogę się dowiedzieć, która wersja układu jest używana?

Odpowiedz

117

Jeśli .svn/format istnieje wtedy odczytać wartość w tym:

  • wersja 7 Słow 1,3
  • wersja 8 Słow 1,4
  • Wersja 9 Słow 1,5

Jeśli .svn/format nie istnieje, numer wersji znajduje się w pierwszej linii w .svn/entries:

  • Wersja 10 Słow 1,6
  • Wersja 12 Słow 1,7

Subversion 1,6 jako pierwszy, aby nie używać .svn/format. Wersja 7 i starsze oparte na pliku .svn/entries opartym na XML, nowsze wersje używają mniej dokładnego, liniowego formatu plików.

Od wersji Subversion 1.7 numer wersji jest przechowywany w bazie danych SQLite .svn/wc.db w polu "user_version". Tak więc chociaż wersja .svn/format trafiła do wersji 12, faktyczna wersja formatu to 29, a przyszłe wersje mogą już nie aktualizować .svn/format. Wszystkie numery wersji formatu są opisane w wc.h wraz z numerami wersji poszczególnych wersji Subversion.

+0

Mój plik ma wartość formatu = 4. To nie ma sensu. Czy to ? –

+1

@ShariqueAbdullah Wierzę, że wersja 4 odpowiada oryginalnemu wydaniu Subversion 1.0, ale mógłbym się mylić. –

+1

@ShariqueAbdullah To brzmi bardziej jak wersja w formacie repozytorium niż zdalnie nowoczesna wersja formatu kopii roboczej. –

11

Od przepełnienie stosu pytanie Find out SVN working copy version (1.7 or 1.8):

Można wykorzystać sqlite3 .svn/wc.db "PRAGMA user_version" na SVN 1.7 lub nowszej (lub od -An -j63 -N1 -t dC .svn/wc.db jeśli tylko mają SQLite 3.0 bibliotek, YMMV).

+0

Polecenie 'od' działa na moim systemie, który moim zdaniem nie ma bibliotek SQLite. Dzięki! –