如何确定SVN工作副本布局版本?

时间:2009-09-01 20:57:32

标签: svn working-copy

例如,SVN 1.5客户端有一个工作副本布局,SVN 1.6客户端有不同的布局。据我所知,布局会在较新的客户端触及时自动升级。

如果我的系统上有工作副本,我怎样才能找到它正在使用的版面?

2 个答案:

答案 0 :(得分:121)

如果存在.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开始,版本号存储在“user_version”字段的.svn/wc.db SQLite数据库中。因此,即使.svn/format碰到版本12,实际格式版本也是29,未来版本可能不再更新.svn/format。要从.svn/wc.db获取版本号,有两种方法:

  1. 如果您的路径中有sqlite3sqlite3 .svn/wc.db "PRAGMA user_version"
  2. 如果您的路径中没有sqlite3,请在十六进制编辑器中打开.svn/wc.db并读取偏移量为0x3c的DWORD
  3. 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