名前

svnadmin recover — リポジトリデータベースを整合性のある状態へ修復します (bdb バックエンドを使用しているリポジトリの場合のみ)。さらに、repos/conf/passwd が存在しなければ、デフォルトのパスワードファイルも作成します。

書式

svnadmin recover REPOS_PATH

説明

リポジトリは修復される必要がある、というエラーメッセージを受け取った際に、このコマンドを実行してください。

オプション

--wait

ハングしてしまったリポジトリの修復を行います。

$ svnadmin recover /usr/local/svn/repos/ 
リポジトリのロックを取得しました。
お待ちください。リポジトリの復旧にはいくらか時間がかかります...

復旧が終わりました。
リポジトリの最新のリビジョンは 34 です。

データベースの修復には、リポジトリを排他的にロックする必要があります。他のプロセスがリポジトリにアクセスしている場合、svnadmin recover はエラーになります。

$ svnadmin recover /usr/local/svn/repos
svn: リポジトリへの排他的なアクセスを取得できませんでした。おそらく httpd, svnserve,
svn などといった他のプロセスがリポジトリを開いてしまったのでしょう。

$

しかし --wait オプションを指定すると、svnadmin recover は他のプロセスの接続が切れるまで待ちつづけます。

$ svnadmin recover /usr/local/svn/repos --wait
リポジトリにロックがかかるのを待ち続けています。おそらく他のプロセスが
リポジトリを開いてしまったのでしょう。

### time goes by…

リポジトリのロックを取得しました。
お待ちください。リポジトリの復旧にはいくらか時間がかかります...

復旧が終わりました。
リポジトリの最新のリビジョンは 34 です。