#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=元の

:補足|
ファイル名が正しくUTF-8かつ LANG=C svn なんてことをしていなければ、~
普通に update できるはず。~
~
上記のメモは非UTF-8の日本語ファイル名で保存されてた頃のメモ・・・?

* 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認証の設定を書く。

* zshの補完が利かない

 _svn_command:5: bad set of key/value pairs for associative array

みたいなのが出る。

LC_ALL などによって日本語が指定されている場合や、~
改行コード CRLF のときなどおかしくなる。~
(Cygwin の svn は LF だがそうでないバイナリの場合ハマる~


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS