.svn
のファイルをSVNツールを使用せずに見て、作業コピーバージョン(SVN 1.7対1.8)を調べるにはどうすればよいですか?SVN作業コピーバージョン(1.7または1.8)を確認
答えて
私はしばらくこのことに疑問を抱いていましたが、SQLiteデータベースを見てもどこでも答えを見つけることができませんでした。だから私はバージョンが実際にデータベースに格納されていることを知ったSubversionのソースコードを調べてしまいました。私はちょうど正しい場所を探していませんでした。
svn_error_t *
svn_sqlite__read_schema_version(int *version,
svn_sqlite__db_t *db,
apr_pool_t *scratch_pool)
{
(...)
SVN_ERR(prepare_statement(&stmt, db, "PRAGMA user_version;", scratch_pool));
(...)
}
私はSQLite documentationがあるによると、PRAGMA
文のさえ知らなかった...
... SQLiteの固有のSQL拡張機能:ここに
subversion/libsvn_subr/sqlite.c
から関連するスニペットですSQLiteライブラリの操作を変更したり、SQLiteライブラリに内部(テーブル以外の)データを問い合わせるために使用されます。したがって
、作業コピーのルートに... ...
sqlite3 .svn/wc.db "PRAGMA user_version"
をあなたが行うことができますPATH
上のSQLiteの合理的に最新のバージョンを想定し、歩留まりその後、意志例えばSubversion 1.8.13の場合は29
、Subversion 1.8.0の場合は31
です。残念ながら、サブバージョンバージョンにuser_version
を関連付けるリストはないようですが、フォーマットの変更が実際にどのようなものになっているかに興味がある場合は、subversion/libsvn_wc/wc-metadata.sql
の形式20以降のソースで説明されています。
更新1:は、SQLiteの実行せずにuser_version
の値を取得する方法についての質問への対応:SQLite file format specificationに指定されているあなたはでDWORD
を読む必要は(「1.2データベースを参照してください、データベースファイルに60
をオフセットヘッダ")。テキスト/バイナリファイルビューアで表示する方法をさらに明確にする:
Update 2の現在のバージョン番号は、単一バイト(すなわち、それらは255
よりも小さくしている)とAにまだかなり低いとフィットしているので、 DWORD
の長さは4バイトですが、現時点では最下位バイト(バイト番号64
)で十分です。以下は、Subversion 1.8.0作業コピーのSQLiteデータベースファイルでどのように見えるかを示したスクリーンショットです。これは既に上記のようにuser_version
の31
です。
アップデート3:私は常に問題で、Perlや、このようなを投げ避けるために、コマンドラインツールで、このような「バイナリクエリ」を行う方法を探していました。 Turns out there's a *nix utility for that called od
(そして、私もwin32ポートのコレクションに入れました!)
od -An -j63 -N1 -t dC .svn/wc.db
これます再び出力31
のSubversion 1.8.0用など:od
はこのようなuser_version
の最下位バイトを得ることができます。
これに関するドキュメントは見つかりませんでしたが、簡単な答えは可能です。ファイル\.svn\format
を見つけてください。たとえば、番号12
は、作業コピーがSVN 1.8形式であることを意味します。 SVN 1.7の場合は、11
が表示されます。
-1これはそうではありません。Subversion 1.7.13と1.8.0で試してみましたが、両方とも 'format'ファイルに' 12'を出力しています。 – zb226
これらのバージョンは実際に同じリポジトリ形式を共有している可能性があります。 – prodigitalson
それでも、1.7と1.8 WCを区別することはできません。あなたは1.8の1.7 WCで動作することはできません。 – zb226
の.svn /形式が存在する場合、その中の数読み取る:の.svn /形式が存在しない場合
Version 7 is SVN 1.3
Version 8 is SVN 1.4
Version 9 is SVN 1.5
を次にバージョン番号の.svn /エントリの最初の行にある:
Version 10 is SVN 1.6
Version 12 is SVN 1.7
- 1. Xcode8はSubversion 1.7または1.8をサポートしていますか?
- 2. ANT> 1.7ではなく<1.8
- 3. SVNアップグレード作業コピー
- 4. NetBeans 7.0のSVN 1.7+
- 5. Subversionサーバーを1.7から1.8にアップグレード
- 6. SVN 1.7で動作するDelphi SVNの統合ですか?
- 7. 作業ディレクトリにSVNをエクスポート
- 8. DIYカートリッジはOpenShiftの1.8からJava 1.7にリセットされます
- 9. SVN作業コピーのアップグレード - TortoiseSVN
- 10. PHPでの作業の作業を確認するためのRegexパターンはありません。
- 11. SVN作業コピーに切り替えサブディレクトリが含まれているかどうかを確認する方法
- 12. SVNではない作業ディレクトリ
- 13. Zend_Loaderを1.7から1.8にアップグレードするには?
- 14. は - 私は私の現在の作業ディレクトリを確認
- 15. svn作業コピーディレクトリから削除を削除しました
- 16. Prestashop 1.7最終注文ステップで在庫を確認します
- 17. svnブランチの変更を確認する
- 18. メタデータを保持したまま、svn 1.7の作業コピーのサブディレクトリをコピーするにはどうすればいいですか?
- 19. TortoiseSVN 1.7はSVN 1.6リポジトリに対して正しく動作しますか?
- 20. 作業コピーからsvnリポジトリを作成するには?
- 21. このjQueryウィジェット(jQueryUI 1.7用)を変更してjQueryUI 1.8
- 22. SVNで元に戻す作業コピー
- 23. Eclipseからsvnで作業中のプロジェクト
- 24. チェックアウトや作業コピーなしのSVNコミット
- 25. ローカルホスト上の複数のSVN作業コピー
- 26. Svn 1.7 - 作業コピーに存在しないリビジョンがある場合、作業コピーを再配置リポジトリに切り替える方法
- 27. JDK 1.6 1.7と1.8で動作するようにプロジェクト用のfindbugs-maven-plugin
- 28. SVN追加エラー - 作業コピーではありません
- 29. ウェブサイト:SVN:作業コピー:ローカルsvn checkoutのためのApache httpd.confの設定 - HOWTO?
- 30. SVN FTPで行われた変更を作業コピーにマージ
[私はSVN作業コピーレイアウトのバージョンをどのように決定するのですか?](http://stackoverflow.com/questions/1364618/how-do-i-determine-svn-working-copy-layout-version) ) –
この質問に対するより一般的な答えは既に存在します:http://stackoverflow.com/questions/1364618/how-do-i-determine-svn-working-copy-layout-v ersion –
* [SVN作業コピーレイアウトのバージョンを確認するにはどうすればよいですか?](http://stackoverflow.com/questions/1364618)*。 –