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?

War es hilfreich?

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:

  1. Wenn Sie sqlite3 in Ihrem Pfad haben, sqlite3 .svn/wc.db "PRAGMA user_version"
  2. Wenn Sie nicht über sqlite3 in Ihrem Weg, offen .svn/wc.db in einem Hex-Editor haben und den DWORD bei Offset 0x3C
  3. 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).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top