ratio - rational - irrational

« 塚田先生の来院予定 | Main | 私にできること »

2005年01月12日

CVSからSubversionへの移管

やっぱりどうにもCVSはリファクタリングとの相性の悪さに耐え兼ねるということで、Subversionに移管することになった。

目標

  • Subversion + Apache によるWebDAV経由の自動バージョン管理
  • 既存のCVSリポジトリはそのまま移行

正攻法

  • Subversion, mod_dav_svn, Apacheをインストール。
  • ユーザーsvnを作成して、svn所有のリポジトリを作成。
  • Subversionを使うユーザーとapacheユーザーをまとめてsvnグループに追加。
  • cvs2svn.py でCVSをSubversionに移管。このスクリプトは:pserverなリポジトリの指定は受け付けないみたいなので、CVSサーバーから丸ごとSubversionサーバーにリポジトリを持ってきて、実行。
  • で、あとはよしなにApacheを設定。

問題

  • ブラウザからアクセスすると500でメッセージは次のとおり。
    Could not open the requested SVN filesystem
    • Apacheのエラーログを見てみると、リポジトリが壊れているらしい。
  • cvs2svn.pyを実行した直後の状態では、リポジトリが壊れている。
    Error string not specified yet: Berkeley DB error while opening environment for filesystem /path/to/repository/db:\nDB_RUNRECOVERY: Fatal error, run database recovery
    と言われてしまった。
    • svnadmin recoverした。
  • 今度はこんなエラーが。
    Error string not specified yet: Berkeley DB error while opening environment for filesystem /path/to/repository/db:\nPermission denied
    • svnadmin recoverがgroupのwを無くしてしまうため。db/*を0664に設定。
  • まだ壊れているとか言われる。

結局の対処法

  1. cvs2svnの直後にsvnadmin dumpでリポジトリをダンプ。
  2. 一度、リポジトリをディレクトリごと削除
  3. 再度、リポジトリを作成
  4. svnadmin loadでダンプファイルからリポジトリをロード
  5. svnadmin recoverでリポジトリを修復
  6. db/*のパーミッションを0664に設定
  7. ついでに、db/ をchmod +sしておく。

以上でHTTP経由でリポジトリにアクセスできるようになった。

WebDAV書き込み問題

……と思ったら、WebDAVでは書き込めなかった。error_logを見ると、こんなログが出ていた。

[error] [client **.**.**.**] could not open dbm file s. [500, #13]
[error] [client **.**.**.**] Can't open activity db: Permission denied [500, #13]

原因は、WebDAV書き込み時には /path/to/repository/dav/ にも書き込みが必要だということ。ここのgroupのwビットが立っていなかったのでapacheが書き込めなかった模様。Subversionのメーリングリストの記事にあったとおり、リポジトリ以下のファイルをすべて0660にした。ついでにdav/ をchmod +sしておく。



トラックバック

この記事のトラックバックpingのURL:
http://idm.s9.xrea.com/blog/mt-tb.cgi/165

Ping元:Subversionリポジトリの一覧

概要:
複数のSubversionリポジトリをWebDAV上にて一覧する。
Weblog:
ratio - rational - irrational
日時:
2005年01月15日 18:26

コメント

新しくコメントをつける

よくわからない理由により、コメントが即座には反映されないかもしれませんか゛、ボタンを押して元の画面に戻ってきたならたぶん正しく送信されています。




blog操作

検索


カテゴリー

このブログについて

あわせて読みたい

follow yugui at http://twitter.com
© 2005 Yugui

Powered by Movable Type 3.2-ja-2