如何确定SVN工作副本版式?


72

例如,SVN 1.5客户端具有用于工作副本的一种布局,而SVN 1.6客户端具有不同的布局。我了解,当新客户触摸该布局时,该布局会自动升级。

如果我的系统上有工作副本,如何找到其使用的布局版本?

Answers:


128

如果.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和更早的.svn/entries版本使用基于XML的文件,而较新的版本使用较少的基于行的详细文件格式。

从Subversion 1.7开始,版本号存储在.svn/wc.dbSQLite数据库的“ 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

wc.h中描述了所有格式版本号以及相应的Subversion发行版的版本号。


我的文件的格式值为=4。这没有意义。可以 ?
Sharique Abdullah 2012年

1
@ShariqueAbdullah我相信版本4对应于原始Subversion 1.0版本,但是我可能会误会。
菲利普·纳瓦拉

1
@ShariqueAbdullah听起来更像是存储库格式版本,而不是远程现代的工作副本格式版本。
Charles Duffy 2013年

2
从Subversion 1.8开始,这种方法被打破了。
2013年

我已经更新了答案,以提及Subversion 1.7+将版本号存储在SQLite数据库中(实用程序user_version)。wc.h的链接还包含Subversion 1.8的相关版本号。
Filip Navara

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.