何度もすみません、再びsvnに関する質問です。

前の質問(http://q.hatena.ne.jp/1225639637)で通常のsvnのコマンドに関してはうまく動作したのですが、
svnadmin create file://Volumes/hogehoge/svn/project
上記がうまく動作してくれません。(svnadmin: 'file://Volumes/hogehoge/svn/project' is an URL when it should be a path)
そういえばsvnadminの場合はwinの場合もパスの指定の仕方を変えないといけないのを思い出して
svnadmin create /Volumes/hogehoge/svn/project
に書き変えてためしてみると、
svnadmin: Can't write to file '/Volumes/hogehoge/svn/project/db/write-lock': Input/output error
のエラーが出てしまいます。上記のファイルそのものは作成されていることから
パスの指定の仕方は正解だということはわかるのですが。。。
何度も申し訳ありませんが、何かわかる方はお教えいただけますと幸いです。
よろしくお願いいたします。

回答の条件
  • 1人10回まで
  • 登録:2008/11/03 11:08:58
  • 終了:2008/11/08 10:51:53

回答(4件)

id:zzz_1980 No.1

zzz_1980回答回数492ベストアンサー獲得回数642008/11/03 12:08:06

ポイント23pt

/Volumes/hogehoge/svn/project/db/

への書き込み権限が無いんじゃないかと思います。

http://q.hatena.ne.jp/1225423519 のコメントを参照願います。

id:zzz_1980 No.2

zzz_1980回答回数492ベストアンサー獲得回数642008/11/03 12:43:40

ポイント41pt

svnのlock のメカニズムを勘違いしていました。

Berkeley DB で lock を管理しているらしいので、単にファイルが作れる、作れないの問題ではないようです。

smb 経由という点が引っかかります。すこし調べますので以降はコメントをあけておいていただければそちらへ書き込みます。

id:n_maco2

ご回答ありがとうございます!

>smb 経由という点が引っかかります。すこし調べますので以降はコメントをあけておいていただければそちらへ書き込みます。

本当に助かります。ありがとうございます。

ロックファイルそのものは生成されているので、単純な書き込み権限の問題ではおっしゃるとおりなさそうです。

パーミッションも読み書き可の状態ですので。。。

諸々こちらでも調べていますので何かわかりましたらお教えいただけますでしょうか。

よろしくお願いいたします。

※とりあえず回答回数を増やしておきました。

2008/11/03 13:02:49
id:b-wind No.3

b-wind回答回数3344ベストアンサー獲得回数4402008/11/03 21:34:21

ポイント31pt
svnadmin create --fs-type fsfs /Volumes/hogehoge/svn/project

でやってみて。

もちろん一端 /Volumes/hogehoge/svn/project の中身は空にして。

id:n_maco2

いつもご回答ありがとうございます。

試してみたところ、下記の状態になって、他のパターンと同じ結果になってしまいました。。。

macbook:~ maco$ svnadmin create --fs-type fsfs /Volumes/hogehoge/svn/project

svnadmin: Can't write to file '/Volumes/hogehoge/svn/project/db/write-lock': Input/output error

2008/11/03 22:36:36
id:startkit No.4

startkit回答回数166ベストアンサー獲得回数12008/11/03 22:59:15

ポイント22pt

rootないしは管理者で動かさないとだめなのでは?あるいは当該ディレクトリのパーミッションが書き込み禁止になっている。

id:n_maco2

ご回答ありがとうございます。

レポジトリを作成している場所なのですが、NAS上のサーバーでして聞いた話では一応OSが入っているらしいという話は聞くのですが、telnetでもsshでも接続できないので、root権の取得などができない状態です。一応macにマウントした状態でsvnフォルダ(この中にレポジトリを作ろうとしています)のパーミッションを見てみると、

drwx------ 1 maco admin 16384 Nov 3 22:34 svn

700となっていますが、smbで接続しているのでこれを見る意味はあるのでしょうか。。。(winはパーミッションの考えがないと聞いていますが。。。)

また、"/Volumes/hogehoge/svn/project/db/write-lock"このファイルの作成そのものには成功しているので、書き込み権限などは問題なさそうに見えます。。。

2008/11/03 23:23:41
  • id:zzz_1980
    リポジトリをごっそりmacローカルにコピーして試してもらえば、samba経由が悪いのかどうか切り分けができます。
    まずはこれから試してみていただけますでしょうか。
    まさかとは思いますが、Windows の svn と Mac の svn、データベース構造が異なる、ということはないでしょうね????
    試しに手元で subversion 1.5.2 を source から build しているのですが berkeley DB か GNU gdbm を使うか選択するようになってるんですよ。
  • id:n_maco2
    コメントありがとうございます。
    ただ、svnadmin createが失敗するということはレポジトリの作成でこけてしまっているのでmac側に持ってくる要素がない状態です。

    そこで逆にsvnadmin createの作成場所をローカル内にしてみると作成に成功しました。
    svnadmin create /Users/username/Sites/project →成功
    そのレポジトリを逆にそのままNAS内にコピーしようとすると
    「1つ以上の項目またはそれ以上の項目には特殊なアクセス権が必要なためコピーできません」
    と言われます。そのまま無視して続けてコピー完了後にsvn mkdirでコピーしたフォルダ内にフォルダを作ろうとしてみるとこんなことを言われてしまいました。
    svn: Can't get exclusive lock on file '/Volumes/hogehoge/svn/project/db/txn-current-lock': Operation not supported

    ローカル側では問題なく動作することからmacに入っているsvnadminに何か問題があるとも思えませんし、
    同じNASへWinからレポジトリ作成(CentOSからもOKでした)ができていることからNAS側に何か問題があるようにも思えません。
    ということはやはりマウントをsmb://hogehogeでやっているからなのでしょうか。。。

  • id:n_maco2
    ここまで書いたところで、そういえばCentOSではsmbfsではなくcifsでマウントしたなぁと気づきまして、
    cifs://hogehoge
    でマウントして試してみまたところ、やはり
    svnadmin: Can't write to file '/Volumes/hogehoge/svn/project/db/write-lock': Input/output error
    と怒られてしまいました。。。
    うーん。。。
  • id:n_maco2
    ちなみに前の質問で書かせていただいていたのですが
    svn co file:///Volumes/hogehoge/svn/project/trunk trunk
    これらのsvnコマンドはこの書き方で成功いたします。
    しかし、svnadminを同じpathの書き方でやろうとすると
    macbook:~ maco$ svnadmin create file:///Volumes/hogehoge/svn/project
    svnadmin: 'file:///Volumes/hogehoge/svn/project' is an URL when it should be a path
    ということで怒られてしまうんです。。。
    うーん。。。
  • id:zzz_1980
    実は svn は全く使ったことがないのですが、
    svnbook (9.3 svnadmin)によると、
    svnadmin は直接リポジトリに対するアクセスにより動作するので(そして、リポジトリが存在するマシン
    上でのみ利用することができるので)、URL ではなく、パス名によってリポジトリを参照します。
    とのことです。
  • id:n_maco2
    コメントありがとうございます。
    パスの指定方式の違いの由来はそこになるんですね。
    WinやCentOSからはsvnadminが使えているので
    指定方法さえしっかりしていればできると考えているのですが。。。
    色々探ってみます、ありがとうございます。
  • id:n_maco2
    みなさんご回答ありがとうございました。
    引き続き自分で調査中です。。。
    やはりパーミッションの問題なのかと疑い中。
    また疑問がありましたら質問させていただきたいと思いますので、
    その際はよろしくお願いいたします。
  • id:n_maco2
    引き続きこちらの問題を調べていたのですが、
    海外サイトを読みふけっていると同様の問題が数が少ないですがちらほらと。。。
    それを読む限りどうもsmbfsのバグっぽいことが書かれていました。

    実際そうなのかどうかは正直自信がありませんでしたが、
    macとwin共用でNAS使用という特殊環境で無理矢理環境を構築するメリットが
    ここまで手間がかかってしまうと意味がなくなってしまうため断念いたしました。

    今は外部のsvnのホスティング環境にて解決できないか調査をしているところです。
    諸々ご協力いただきましたみなさん、ありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません