How do I determine the SVN working copy layout version?

試著忘記壹切 提交于 2019-11-27 17:34:40
Filip Navara

If .svn/format exists, then read the number in it:

  • Version 7 is SVN 1.3
  • Version 8 is SVN 1.4
  • Version 9 is SVN 1.5

If .svn/format doesn't exist then the version number is on the first line in .svn/entries:

  • Version 10 is SVN 1.6
  • Version 12 is SVN 1.7

Subversion 1.6 was the first one not to use .svn/format. Version 7 and older used XML-based .svn/entries file, newer versions use less verbose line-based file format.

Since Subversion 1.7 the version number is stored in the .svn/wc.db SQLite database in the "user_version" field. So even though .svn/format is bumped to version 12 the actual format version is 29 and future versions may not update .svn/format anymore. To obtain the version number from .svn/wc.db there are two methods:

  1. if you have sqlite3 in your path, sqlite3 .svn/wc.db "PRAGMA user_version"
  2. if you DO NOT have sqlite3 in your path, open .svn/wc.db in a hex editor and read the DWORD at offset 0x3c

All the format version numbers are described in wc.h along with the version numbers of respective Subversion releases.

user3090766

From Stack Overflow question Find out SVN working copy version (1.7 or 1.8):

One can use sqlite3 .svn/wc.db "PRAGMA user_version" on SVN 1.7 or later (or od -An -j63 -N1 -t dC .svn/wc.db if you only have the SQLite 3.0 libraries, YMMV).

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!