#contents * Berkeley DBが壊れた時の対処 svnadmin recover /path/to/svn/repos - 他の人が作ったログファイルなどがあるとrecoverに失敗する(半端に成功する) -- chownしてもらう(パーミッションを変えてもらうだけでいいのかも - db内のファイルがパーミッション644に戻っているので''666にする''(そういう管理の時は * DB_VERSION_MISMATCH aptでいろいろ更新後 DB_VERSION_MISMATCH: Database environment version mismatch svn: bdb: Program version 4.3 doesn't match environment version http://subversion.tigris.org/faq.html#bdb43-upgrade を参考にしつつ、~ ・・・なんか違うことしてたり。 + svnadmin recover /path/to/svn/repos → エラー + 古い svnadmin の バイナリを拾ってくる + oldsvnadmin recover /path/to/svn/repos → エラー + svnadmin recover /path/to/svn/repos → エラー + touch 〜/db/log.0000000134 + svnadmin recover /path/to/svn/repos そのエラー Repository lock acquired. Please wait; recovering the repository may take some time... svnadmin: DB_RUNRECOVERY: Fatal error, run database recovery svnadmin: bdb: /path/to/svn/repos/db/log.0000000134: log file open failed: No such file or directory svnadmin: bdb: PANIC: No such file or directory svnadmin: bdb: DB_ENV->log_put: 134: DB_RUNRECOVERY: Fatal error, run database recovery 結局誰が悪いのやら。~ 家の環境ではそもそも DB_VERSION_MISMATCH にならず。 * ファイルの追加失敗 commit成功したあとにupdateに失敗した場合 - 追加したファイルをいったん rm - svn update - commit log が残されたままになるので rm commitメッセージ書いてる横でupdateとかしたら起こりました * TortoiseSVN - SSHクライアントが未指定だとわかりにくいエラーメッセージが出て困る -- enとjpでは出てくるメッセージが違う(そしてどちらも本質を突いていない - svn+sshだと、リポジトリの不具合の種類によっては「接続が切れた」程度のエラーしか返さない -- ssh でマシンにログインして checkout などして原因を調べないといけない * NFS関連 - FSFSを使うこと - NFSサーバで statd, lockd を動かす -- FreeBSDだとrc.conf.localあたりで rpc_lockd_enable="YES" rpc_statd_enable="YES" とか指定して /etc/rc.d/nfslocking start~ これができていないと lock できないとか言われる * 文字コード関連 svn: Can't convert string from native encoding to 'UTF-8' 日本語ファイル名が存在するときに checkout や update をすると起こる。~ TortoiseSVN 越しだと接続が途中で切れるのでこのメッセージすら見れない。~ # 対処法 # svn に LANG=C なエイリアスをあてている場合は \svn になるので注意 LANG=ja_JP.UTF-8 svn update # 日本語のファイル名は化けているので svn ls とかでがんばる svn mv 日本語 NIHONGO svn commit LANG=元の * Apache2 越しにアクセス [#apache2basic] /var/www 直下に .htaccess なんかを置いてBASIC認証していると、~ リポジトリにアクセスしようとしたときに、以下のエラーが出る(コマンドライン svn。~ svn: REPORT request failed on '/REPOS_URI/!svn/vcc/default' svn: Not authorized to open root of edit operation 回避方法としては /REPOS_URI に改めてBASIC認証の設定を書く。