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