>>2334 わたなべ > ひょっとして、これもまずい行動でしたか。 問題ありません。書いてある通り、covered by the BSD-Licence です。 checkout できるファイルとできないファイルがあるということですから、 まずはリポジトリのパーミッションはどうなっているか確認して下さい。 同じディレクトリでも co できるファイルと co できないファイルがあれば、 ファイルのパーミッションが怪しいですし、あるディレクトリの下のファイルが 全て co できないならディレクトリのパーミッションがおかしいでしょうし。 うちの Solaris2.6 では % chown -R cvs /cvsroot (グループは cvs グループで統一) % chmod -R g+w /cvsroot (cvs グループに書き込み権限を与える) % find /cvsroot -type d | xargs chmod g+s (BSD タイプのパーミッションに) とかしてます。でも、cvsweb.cgi は nobody で動かしているから これは関係ないかな…。 また、CGI の実行権限は何ですか? 例えば nobody なら su nobody して から checkout してみて下さい。 実際にどういうコマンドが実行されているかは、 if (! open($fh, "-|")) { # child open(STDERR, ">&STDOUT"); # Redirect stderr to stdout exec($CMD{cvs}, @cvs_options, '-d', $cvsroot, 'co', '-p', $revopt, $where); } の前に print "Content-type: text/plain\n\n"; print qq(exec($CMD{cvs}, @cvs_options, '-d', $cvsroot, 'co', '-p', $revopt, $where);); exit; などと書けばわかるでしょう。 それでもダメなら exec($CMD{cvs}, @cvs_options, '-d', $cvsroot, 'co', '-p', $revopt, $where); を exec("/bin/truss", $CMD{cvs}, @cvs_options, '-d', $cvsroot, 'co', '-p', $revopt, $where); として、どのファイルをオープンしようとしてエラーになっているかを 調べて下さい。ちなみに、こちらでやってみると open("/MASTER/cvs/CVSROOT/config", O_RDONLY) = 4 open("/MASTER/cvs/CVSROOT/cvsignore", O_RDONLY) Err#2 ENOENT open("//.cvsignore", O_RDONLY) Err#2 ENOENT open("/MASTER/cvs/CVSROOT/cvswrappers", O_RDONLY) = 4 open("/MASTER/cvs/CVSROOT/modules", O_RDONLY) = 4 .. open("/MASTER/cvs/admin/public_html/cvsweb.cgi,v", O_RDONLY) = 5 となります。 |