题
例如,SVN 1.5 客户端具有一种工作副本布局,而 SVN 1.6 客户端具有不同的布局。据我所知,当新客户端接触布局时,布局会自动升级。
如果我的系统上有工作副本,我如何才能找到它正在使用的布局版本?
解决方案
如果 .svn/format
存在,则读取其中的数字:
- 版本 7 是 SVN 1.3
- 版本 8 是 SVN 1.4
- 版本 9 是 SVN 1.5
如果 .svn/format
不存在,则版本号位于第一行 .svn/entries
:
- 版本10是SVN 1.6
- 版本 12 是 SVN 1.7
Subversion 1.6 是第一个不使用的版本 .svn/format
. 。版本 7 及更早版本使用基于 XML .svn/entries
文件,较新的版本使用不太详细的基于行的文件格式。
从 Subversion 1.7 开始,版本号存储在 .svn/wc.db
SQLite 数据库中的“user_version”字段。所以尽管 .svn/format
升级到版本12,实际格式版本为29,以后的版本可能不会更新 .svn/format
不再了。获取版本号 .svn/wc.db
有两种方法:
- 如果你有
sqlite3
在你的道路上,sqlite3 .svn/wc.db "PRAGMA user_version"
- 如果你没有
sqlite3
在你的道路上,打开.svn/wc.db
在十六进制编辑器中读取偏移量 0x3c 处的 DWORD
所有格式版本号均在中描述 卫生间 以及各个 Subversion 版本的版本号。
其他提示
从堆栈溢出问题
一个可以在SVN 1.7使用sqlite3 .svn/wc.db "PRAGMA user_version"
或更高(或od -An -j63 -N1 -t dC .svn/wc.db
如果只有所述 SQLite的3.0 库,YMMV)。
不隶属于 StackOverflow