Comment puis-je déterminer la version de mise en page de copie de travail SVN?
-
21-09-2019 - |
Question
Par exemple, le client SVN 1.5 a une mise en page pour des copies de travail, et le client SVN 1.6 a une mise en page différente. Je comprends que la mise en page se automatiquement mis à jour quand il est touché par un nouveau client.
Si j'ai une copie de travail sur mon système, comment puis-je connaître la version de la mise en page qu'il utilise?
La solution
Si existe .svn/format
, alors lisez le numéro dans ce:
- Version 7 est SVN 1.3
- Version 8 est SVN 1.4
- Version 9 est SVN 1.5
Si .svn/format
n'existe pas, le numéro de version est sur la première ligne .svn/entries
:
- Version 10 est SVN 1.6
- La version 12 est SVN 1.7
Subversion 1.6 a été le premier à ne pas utiliser .svn/format
. Version 7 et le fichier .svn/entries
basé sur XML utilisé plus, les versions plus récentes utilisent le format de fichier à base de ligne moins verbeux.
Depuis Subversion 1.7, le numéro de version est stocké dans la base de données SQLite .svn/wc.db
dans le champ « user_version ». Ainsi, même si .svn/format
est cogné à la version 12 de la version de format actuel est de 29 et les versions futures ne peut pas mettre à jour .svn/format
plus. Pour obtenir le numéro de version de .svn/wc.db
il existe deux méthodes:
- si vous avez
sqlite3
dans votre chemin,sqlite3 .svn/wc.db "PRAGMA user_version"
- si vous n'avez pas
sqlite3
dans votre chemin,.svn/wc.db
ouvert dans un éditeur hexadécimal et lisez le DWORD à 0x3c décalage
Tous les numéros de version du format sont décrites dans wc .h ainsi que les numéros de version des versions Subversion respectifs.
Autres conseils
De la question Stack Overflow Découvrez la version de copie de travail SVN (1.7 ou 1.8) :
On peut utiliser sqlite3 .svn/wc.db "PRAGMA user_version"
sur SVN 1.7 ou version ultérieure (ou od -An -j63 -N1 -t dC .svn/wc.db
si vous avez seulement SQLite 3.0 bibliothèques , YMMV).