例如,SVN 1.5客户端有一个工作副本布局,SVN 1.6客户端有不同的布局。据我所知,布局会在较新的客户端触及时自动升级。
如果我的系统上有工作副本,我怎样才能找到它正在使用的版面?
答案 0 :(得分:121)
如果存在.svn/format
,请阅读其中的数字:
如果.svn/format
不存在,则版本号位于.svn/entries
的第一行:
Subversion 1.6是第一个不使用.svn/format
的人。版本7及更早版本使用基于XML的.svn/entries
文件,较新版本使用较少详细的基于行的文件格式。
从Subversion 1.7开始,版本号存储在“user_version”字段的.svn/wc.db
SQLite数据库中。因此,即使.svn/format
碰到版本12,实际格式版本也是29,未来版本可能不再更新.svn/format
。要从.svn/wc.db
获取版本号,有两种方法:
sqlite3
,sqlite3 .svn/wc.db "PRAGMA user_version"
sqlite3
,请在十六进制编辑器中打开.svn/wc.db
并读取偏移量为0x3c的DWORD wc.h中描述了所有格式版本号以及各个Subversion版本的版本号。
答案 1 :(得分:11)
来自Stack Overflow问题 Find out SVN working copy version (1.7 or 1.8) :
如果您只拥有SQLite 3.0个库,YMMV,则可以在SVN 1.7或更高版本上使用sqlite3 .svn/wc.db "PRAGMA user_version"
(或od -An -j63 -N1 -t dC .svn/wc.db
。