¿Cómo determino la versión de diseño de copia de trabajo SVN?
-
21-09-2019 - |
Pregunta
Por ejemplo, el cliente SVN 1.5 tiene un diseño para las copias de trabajo, y el 1,6 SVN cliente tiene un diseño diferente. Entiendo que la disposición se actualiza automáticamente cuando se tocó por un cliente nuevo.
Si tengo una copia de trabajo en mi sistema, ¿cómo puedo averiguar la versión de la disposición que está usando?
Solución
Si existe .svn/format
, a continuación, leer el número en él:
- Version 7 es SVN 1.3
- Version 8 es SVN 1.4
- Versión 9 es SVN 1.5
Si no existe .svn/format
entonces el número de versión está en la primera línea en .svn/entries
:
- Version 10 es SVN 1.6
- Version 12 es SVN 1.7
Subversion 1.6 fue el primero en no utilizar .svn/format
. Versión 7 y el archivo .svn/entries
basado en XML utilizado mayores, las versiones más recientes utilizan el formato de archivo basado en línea de menos detallado.
Desde Subversion 1.7 el número de versión se almacena en la base de datos SQLite .svn/wc.db
en el campo "user_version". Así que, aunque .svn/format
se golpea a la versión 12 de la versión actual formato es 29 y las futuras versiones no se puede actualizar .svn/format
más. Para obtener el número de versión de .svn/wc.db
hay dos métodos:
- si ha
sqlite3
en su camino,sqlite3 .svn/wc.db "PRAGMA user_version"
- Si usted no tiene
sqlite3
en su camino,.svn/wc.db
abierto en un editor hexadecimal y leer el valor DWORD en el desplazamiento 0x3c
Todos los números de versión de formato se describen en wc .h junto con los números de versión de los respectivos comunicados de Subversion.
Otros consejos
De la pregunta de desbordamiento de pila Averigüe SVN versión de copia de trabajo (1.7 o 1.8)
Uno puede usar sqlite3 .svn/wc.db "PRAGMA user_version"
en SVN 1.7 o posterior (o od -An -j63 -N1 -t dC .svn/wc.db
si sólo tiene la SQLite 3.0 bibliotecas , tu caso es distinto).