例如,SVN 1.5 客户端具有一种用于工作副本的布局,而 SVN 1.6 客户端具有不同的布局。我知道当新客户接触到布局时,布局会自动升级。
如果我的系统上有一个工作副本,我如何才能找到它正在使用的布局版本?
例如,SVN 1.5 客户端具有一种用于工作副本的布局,而 SVN 1.6 客户端具有不同的布局。我知道当新客户接触到布局时,布局会自动升级。
如果我的系统上有一个工作副本,我如何才能找到它正在使用的布局版本?
如果.svn/format
存在,则读取其中的数字:
如果.svn/format
不存在,则版本号在第一行.svn/entries
:
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 处的 DWORDwc.h中描述了所有格式版本号以及各个 Subversion 版本的版本号。
从 Stack Overflow 问题中找出 SVN 工作副本版本(1.7 或 1.8):
可以sqlite3 .svn/wc.db "PRAGMA user_version"
在 SVN 1.7 或更高版本上使用(或者od -An -j63 -N1 -t dC .svn/wc.db
如果您只有SQLite 3.0库,YMMV)。