【背景】
業務でSVNサーバーの構築をしそうなので、コミットするくらいでしか使ってなかったTortoiseSVNと、「ブラウザ上でSVNのやつを見れるようにするアプリ」くらいの理解なVisualSVNserverについてお勉強を開始
もちろんエラーを吐きまくりで躓きました。
備忘+同じ箇所に躓く人がいたときの助けになれば徳が積まれて巡り巡って宝くじとかいろいろ当たると思うので投稿
【環境】
仮想化ツール:VMware workstation17ホストOS:Windows11
ゲストOS:Windows7
TortoiseSVN :ver1.8
VisualSVNServer:ver5.1.5
【操作内容】
1.visualSVNserverでリポジトリを作成(dumpからのインポートなどではなく、新規作成)
2.TortoiseSVNでそのリポジトリを元にチェックアウト
3.タイトルのエラーが発生しチェックアウト失敗
【エラー内容】
"期待されるファイルシステム形式は 1 から '6' の間ですが、実際の形式は '7' です"【原因】
チェックアウト元リポジトリのファイルシステム形式がTortoiseSVN(Subversion)側で対応していないため(例)
TortoiseSVN :ver1.8
VisualSVNServer:ver5.1.5
TortoiseSVNでリポジトリを作成するとファイルシステム形式は「6」になる
一方、VisualSVNServerでリポジトリを作成するとファイルシステム形式は「7」となる
ちなみにVisualSVNServerだとこんな感じで見れる
※再現しようとした自宅の環境ではバージョンが新しいのでファイルシステム形式が8になっていたがどのみち互換性無し
この状態で、TortoiseSVNのチェックアウトを実行し、対象のリポジトリを後者(visualSVNserverで作ったほう)にすると上述のエラーが発生してチェックアウトが失敗する
【補足】
ファイルシステム形式の記載されたファイルは「リポジトリ/db」配下の「format」というファイル基本的に上書きできない(sakuraエディタだと編集できなかった)
しかし、別のリポジトリからコピペで上書きしたり、メモ帳で開いて編集はできちゃうので注意(やったらもっと面倒なことになりそうなので、実験するときはバックアップして自己責任でやってね)
※ちなみにファイルシステム形式が6の「format」を別のリポジトリから持ってきて上書きしたらチェックアウトできた(やったんかい!!)
【チェックアウト時の指定方法を変更でエラー回避】
2023/6/21:追記ふと別のチェックアウト物を見ていたらURL形式でチェックアウトしているものがあり、ものは試しとやってみたらチェックアウト成功!!
チェックアウト時のリポジトリ指定を<'file:///~'>の形式ではなく<'http://~'>の形式でやると
ファイルシステム形式が7でもチェックアウトできてしまう謎の仕様を発見しました。
いいけどなんでや~
チェックアウトOK:「http://~」形式でチェックアウト
チェックアウトNG:「file:///~」形式でチェックアウト
参考:Understanding the Subversion repository types and formats (https://www.visualsvn.com/support/topic/00135/) ※英語サイトだけどグーグル翻訳でサイトをまるごと翻訳してくれるので助かる~