例如,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 有两种方法:

  1. 如果你有 sqlite3 在你的道路上, sqlite3 .svn/wc.db "PRAGMA user_version"
  2. 如果你没有 sqlite3 在你的道路上,打开 .svn/wc.db 在十六进制编辑器中读取偏移量 0x3c 处的 DWORD

所有格式版本号均在中描述 卫生间 以及各个 Subversion 版本的版本号。

其他提示

从堆栈溢出问题

了解SVN工作拷贝的版本(1.7或1.8) 的:

一个可以在SVN 1.7使用sqlite3 .svn/wc.db "PRAGMA user_version"或更高(或od -An -j63 -N1 -t dC .svn/wc.db如果只有所述 SQLite的3.0 库,YMMV)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top