72

たとえば、SVN 1.5 クライアントには作業コピー用の 1 つのレイアウトがあり、SVN 1.6 クライアントには別のレイアウトがあります。新しいクライアントが触れると、レイアウトが自動的にアップグレードされることを理解しています。

システムに作業コピーがある場合、使用しているレイアウトのバージョンを確認するにはどうすればよいですか?

4

2 に答える 2

129

存在する場合.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.dbSQLite データベースの「user_version」フィールドに保存されます。したがって、バージョン 12 にバンプされたとしても.svn/format、実際のフォーマット バージョンは 29 であり、今後のバージョンは更新され.svn/formatない可能性があります。バージョン番号を取得する.svn/wc.dbには、次の 2 つの方法があります。

  1. パスにある場合はsqlite3sqlite3 .svn/wc.db "PRAGMA user_version"
  2. sqlite3パスにない場合.svn/wc.dbは、16 進エディターで開き、オフセット 0x3c の DWORD を読み取ります。

すべての形式のバージョン番号は、それぞれの Subversion リリースのバージョン番号とともにwc.hに記述されています。

于 2009-09-01T21:03:54.387 に答える
12

スタック オーバーフローの質問から、SVN 作業コピーのバージョン (1.7 または 1.8) を見つけてください。

sqlite3 .svn/wc.db "PRAGMA user_version"SVN 1.7 以降 (または、 SQLite 3.0od -An -j63 -N1 -t dC .svn/wc.dbライブラリしかない場合はYMMV) で使用できます。

于 2013-12-11T10:59:47.193 に答える