今日、古い Subversion リポジトリと作業コピーを復元しようとしている興味深い Catch 22 に出会いました。
最初にレポを移動してアップグレードし、次に作業コピーをアップグレードして、新しく移動したレポを指すようにしました。
$ svn upgrade
svn: E180001: Unable to connect to a repository at URL 'file:///OLD/REPO/PATH'
svn: E180001: Unable to open an ra_local session to URL
svn: E180001: Unable to open repository 'file:///OLD/REPO/PATH'
そのため、リポジトリが間違った場所を指しているため、アップグレードは失敗します。問題ありません。作業コピーを新しいリポジトリ パスに再指定します。
$ svn switch --relocate file:///OLD/REPO/PATH file:///NEW/REPO/PATH .
svn: E155036: Please see the 'svn upgrade' command
svn: E155036: Working copy '/WORKING/COPY/PATH' is too old (format 10, created by Subversion 1.6)
これは完璧な Catch 22 です。レポ パスが間違っているためアップグレードできません。アップグレードしていないため、レポ パスを修正できません。