« 08.03 みどりーの あきばーの すれちがいーの | ココ | 08.04 英語キーボードで日本語入力 on xrdp »

2009年8月 4日

(SVN + SSHFS + Apache) x MERGE = 409?  このエントリーを含むはてなブックマーク 

会社のサーバーで、Subversionのレポジトリを残容量の関係で別マシンに作って、Apacheの設定をしたりポートを空けたりするのがめんどいのでそれをSSHFSでマウントし、既存マシンの設定を有効に活用しようという作戦を思いついた(というか誰でも思いつく)ので、SSHFSでマウントする設定は自動でマウントするように/etc/auto.masterに、

/mnt     /etc/auto.sshfs -g,-t=3600

/etc/auto.sshfsに、

svnrepos    -fstype=fuse,allow_other,IdentityFile=/root/.ssh/id_dsa      :sshfs\#svn@192.168.1.xx\:/home/svn

としてautofsを有効に利用することにしたんですが、いざコミットすると…

$ svn add test.txt
A test.txt

$ svn ci -m 'test'
追加しています test.txt
ファイルのデータを送信中です.svn: コミットに失敗しました (詳しい理由は以下のとおりです):
svn: MERGE リクエスト (相手: '/svn/test') が失敗しました
svn: Can't move '/var/www/svn2/test/db/transactions/0-1.txn/rev' to '/var/www/svn2/test/db/revs/1': Operation not permitted

ん。エラー…。Apacheのログ(access_log)を見てみたら、

192.168.1.186 - - [04/Aug/2009:12:17:39 +0900] "CHECKOUT /svn/test/!svn/ver/0/ HTTP/1.1" 201 320 "-" "SVN/1.4.2 (r22196) neon/0.25.5"
192.168.1.186 - - [04/Aug/2009:12:17:39 +0900] "PROPFIND /svn/test/test.txt HTTP/1.1" 404 293 "-" "SVN/1.4.2 (r22196) neon/0.25.5"
192.168.1.186 - - [04/Aug/2009:12:17:39 +0900] "PUT /svn/test/!svn/wrk/13de48a3-8f8f-4bd1-b398-b3cc97ccf5d3/test.txt HTTP/1.1" 201 316 "-" "SVN/1.4.2 (r22196) neon/0.25.5"
192.168.1.186 - - [04/Aug/2009:12:17:40 +0900] "MERGE /svn/test HTTP/1.1" 409 309 "-" "SVN/1.4.2 (r22196) neon/0.25.5"
192.168.1.186 - - [04/Aug/2009:12:17:41 +0900] "DELETE /svn/test/!svn/act/13de48a3-8f8f-4bd1-b398-b3cc97ccf5d3 HTTP/1.1" 204 - "-" "SVN/1.4.2 (r22196) neon/0.25.5"

と、409エラーが。409ってなんだ。error_logは、

[Tue Aug 04 12:17:40 2009] [error] [client 192.168.1.186] Could not MERGE resource "/svn/test/!svn/act/13de48a3-8f8f-4bd1-b398-b3cc97ccf5d3" into "/svn/test". [409, #0]
[Tue Aug 04 12:17:40 2009] [error] [client 192.168.1.186] An error occurred while committing the transaction. [409, #1]
[Tue Aug 04 12:17:40 2009] [error] [client 192.168.1.186] Can't move '/var/www/svn2/test/db/transactions/0-1.txn/rev' to '/var/www/svn2/test/db/revs/1': Operation not permitted [409, #1]

ここで、ふつーの人なら「パーミッションの問題なんでしょ?」と思う、というか掲示板にエラーだけ書いてもたいていこういうことを返事されるんですけど…。SSHFSでマウントした先で、他人が読み書きできるように設定してるのにパーミッションの問題なんてヘン! と気付かないんですよね。
もしかしたら、ファイルシステム跨ぎのmvが出来ないのか…? とマウントした状態でmvコマンドを試すも普通に出来るし。

svn over sshfs(ref. HIDETEC DIARY)

workaround=rename のオプションをつけてやらないと、"Operation not permitted" と言われる。
svnrepos    -fstype=fuse,rw,nodev,allow_other,IdentityFile=/root/.ssh/id_dsa,workaround=rename    :sshfs\#svn@192.168.1.xx\:/home/svn

あ、こういうことね。

192.168.1.186 - - [04/Aug/2009:12:20:08 +0900] "PROPFIND /svn/test/test.txt HTTP/1.1" 404 293 "-" "SVN/1.4.2 (r22196) neon/0.25.5"
192.168.1.186 - - [04/Aug/2009:12:20:08 +0900] "PUT /svn/test/!svn/wrk/af0cac91-e12d-4d11-9c10-e257a2039b63/test.txt HTTP/1.1" 201 316 "-" "SVN/1.4.2 (r22196) neon/0.25.5"
192.168.1.186 - - [04/Aug/2009:12:20:08 +0900] "MERGE /svn/test HTTP/1.1" 200 968 "-" "SVN/1.4.2 (r22196) neon/0.25.5"
192.168.1.186 - - [04/Aug/2009:12:20:09 +0900] "DELETE /svn/test/!svn/act/af0cac91-e12d-4d11-9c10-e257a2039b63 HTTP/1.1" 204 - "-" "SVN/1.4.2 (r22196) neon/0.25.5"

既存のファイルに対してmvをするとエラーが起こるのか。もうちょいやったのに。svnで409エラーを検索してもなかなか出てこないから手間取った。

By ただ at 23:02 カテゴリー ; プログラミングとか

« 08.03 みどりーの あきばーの すれちがいーの | 08月の記事 | 08.04 英語キーボードで日本語入力 on xrdp »




トラックバック

このエントリーのトラックバックURL:
http://pinmarch.sakura.ne.jp/mt/mt-tb.cgi/1455