Wie kann ich die SVN Arbeitskopie Layout-Version bestimmen?
-
21-09-2019 - |
Frage
Zum Beispiel hat die SVN 1.5 Client ein Layout für Arbeitskopien und der SVN 1.6-Client hat ein anderes Layout. Ich verstehe, dass das Layout automatisch aktualisiert wird, wenn es von einem neueren Client berührt wird.
Wenn ich eine Arbeitskopie auf meinem System habe, wie kann ich die Version des Layouts herauszufinden ist es mit?
Lösung
Wenn .svn/format
vorhanden ist, dann lesen Sie die Nummer in ihm:
- Version 7 ist SVN 1.3
- Version 8 ist SVN 1.4
- Version 9 ist SVN 1.5
Wenn .svn/format
nicht existiert dann die Versionsnummer in der ersten Zeile in .svn/entries
ist:
- Version 10 ist SVN 1.6
- Version 12 ist SVN 1.7
Subversion 1.6 war die erste, nicht zu verwenden .svn/format
. Version 7 und älter verwendete XML-basierte .svn/entries
Datei, neuere Versionen verwenden weniger ausführlich Line-basiertes Dateiformat.
Da Subversion 1.7 die Versionsnummer in der .svn/wc.db
SQLite-Datenbank in dem "user_version" -Feld gespeichert ist. Also auch wenn .svn/format
auf Version 12 die tatsächliche Format Version gestoßen wird, ist 29 und zukünftige Versionen möglicherweise nicht .svn/format
mehr aktualisieren. Um die Versionsnummer von .svn/wc.db
zu erhalten gibt es zwei Methoden:
- Wenn Sie
sqlite3
in Ihrem Pfad haben,sqlite3 .svn/wc.db "PRAGMA user_version"
- Wenn Sie nicht über
sqlite3
in Ihrem Weg, offen.svn/wc.db
in einem Hex-Editor haben und den DWORD bei Offset 0x3C lesen
Alle Formatversionsnummern sind in der wc .h zusammen mit den Versionsnummern der jeweiligen Subversion Versionen.
Andere Tipps
Von Stack-Überlauf Frage finden Sie SVN Arbeitskopie Version (1.7 oder 1.8) :
Man kann sqlite3 .svn/wc.db "PRAGMA user_version"
auf SVN 1.7 oder höher (oder od -An -j63 -N1 -t dC .svn/wc.db
wenn Sie die SQLite 3.0 Bibliotheken, YMMV).