svnadmin recover — リポジトリデータベースの一貫した状態への復帰。
(bdb
バックエンドを使っているリポジトリの場合だけです)。
さらにrepos/conf/passwd
が存在しなければデフォルトの
パスワードファイルも作ります。
ハングしてしまったリポジトリの修復:
$ svnadmin recover /usr/local/svn/repos/ Repository lock acquired. Please wait; recovering the repository may take some time... Recovery completed. The latest repos revision is 34.
データベースの修復にはリポジトリを排他的にロックする必要があります。他 のプロセスがリポジトリにアクセスしている場合、svnadmin recoverはエラーになります:
$ svnadmin recover /usr/local/svn/repos svn: Failed to get exclusive repository access; perhaps another process such as httpd, svnserve or svn has it open? $
しかし --wait
オプションを指定すると svnadmin
recoverは他のプロセスの接続が切れるまで待ちつづけます:
$ svnadmin recover /usr/local/svn/repos --wait Waiting on repository lock; perhaps another process has it open? ### time goes by... Repository lock acquired. Please wait; recovering the repository may take some time... Recovery completed. The latest repos revision is 34.