今天我遇到了一个有趣的 Catch 22,试图恢复旧的 Subversion 存储库和工作副本。
我最初移动并升级了存储库,然后升级了工作副本并将其指向新移动的存储库。
$ 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'
因此,升级失败是因为 repo 指向了错误的位置。没问题,我会将工作副本重新指向新的 repo 路径:
$ 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)
这是一个完美的第 22 条军规——因为 repo 路径错误而无法升级,因为您尚未升级,所以无法修复 repo 路径。