我如何确定SVN工作副本版式?
例如,SVN 1.5客户端有一个工作副本布局,而SVN 1.6客户端有不同的布局。 我知道布局自动升级,当它被一个新的客户端触摸。
如果我在我的系统上有一个工作副本,我怎么才能find它使用的布局版本?
如果.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
文件,较新的版本使用较less的基于行的文件格式。
自Subversion 1.7以来,版本号存储在“user_version”字段的.svn/wc.db
SQLite数据库中。 所以即使.svn/format
被碰撞到版本12,实际的格式版本是29,未来版本可能不会再更新.svn/format
。
wc.h中描述了所有格式的版本号以及相应Subversion版本的版本号。
从堆栈溢出问题findSVN的工作副本版本(1.7或1.8) :
可以在SVN 1.7或更高版本上使用sqlite3 .svn/wc.db "PRAGMA user_version"
(或者如果您只有SQLite 3.0库YMMV,则使用od -An -j63 -N1 -t dC .svn/wc.db
)。