• 締切済み

Subversionでコミットするとエラーがでます

Linux系OS上のApacheでSubversionを使用しています.post-commitを使用していますがクライアントからコミットすると,たまに以下のようなエラーがおきます. Failed to start '/svn/foo/hooks/post-commit' hook この原因や解決方法がわかる方はいませんか.

みんなの回答

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.2

>スクリプトの中身は変更されたパスやリビジョンを出力したりする簡単な処理が書かれています 変にロックしていたりしなければ、大丈夫かと思うんですけどねぇ…。 >エラーは「たまに」起きるのですが完全にランダムというわけではなく >エラーが発生するときは続けて発生します コミット自体に失敗する。 という症状は発生したことありますね。 それなりに前のバージョンでしたが。 # サーバ側でロックファイルが変になった…だったかな。 今回の現象はちょっと不明…です。

minequery199508
質問者

お礼

回答ありがとうございます。 あの後,さらに少し調べてみましたが スクリプト中でエラーとなるというより スクリプト自体が実行されていないようでした. 直接この原因かは不明ですが マシンについてメモリとswapの空き領域がだいぶ少なくなっていました. メモリを追加したのでそれで様子を見ようと思います.

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

「たまに」というのが…調査しにくいですね……。 フックスクリプトの中身ってどんなモノなんでしょうか? クライアント側の表示で前後に別のメッセージとか出ていませんかね? ディストリビューションは何で、サーバやクライアントのバージョンとかの情報があった方がいいかも知れません。 # 情報ないよりは…という意味で。

minequery199508
質問者

お礼

回答ありがとうございます スクリプトの中身は変更されたパスやリビジョンを出力したりする簡単な処理が書かれています クライアントはTortoiseSVNを使用した場合のメッセージは Completed At Revision: 109845 のようなメッセージの後に Failed to start '/svn/foo/hooks/post-commit' hook と表示されます エラーは「たまに」起きるのですが完全にランダムというわけではなく エラーが発生するときは続けて発生します 逆に起きないときはずっと起きません サーバーは、、Ubuntuだった気がします クライアントはWindows7でTortoiseSVNを使用しています

関連するQ&A

  • subversionのpost-commitでsvn upを行うと、パーミッションエラー。

    クライアントからコミットした際に、post-commitで、svnでチェックアウトしている/var/www/sampleprojectディレクトリを"svn up"コマンドで更新をしたいと思っております。 しかし、tortoiseSVNからコミットすると、以下のエラーが表示されてしまいます。 <pre> エラー: post-commitフックが失敗しました (終了コード: 1)。出力: エラー: svn: ファイル '/var/www/sampleproject/.svn/lock' を開けません: 許可がありません </pre> post-commitの内容: <pre> #!/bin/bash REPOS="$1" REV="$2"LOG=/var/log/svn.log export LANG=ja_JP.UTF-8 echo $2 > ${LOG} whoami >> ${LOG} /usr/bin/svn up /var/www/enjoynight >> ${LOG} </pre> post-commitで出力したログを確認してみると、"svn up"を実行しているユーザーは"user1"でした。 /var/www/sampleprojectのオーナーはapacheユーザー(apache.apache)です。 ためしに、"user1"にapacheグループ権限を追加してみましたが、結果は変わりませんでした。 一日中悩んでも解決出来ませんでした。 もしよろしければ、どなたか解決策をご教授頂けないでしょうか。 サーバーOS:CentOS5.3 Subversion:1.6.2 Apache:2.2.3 passenger:2.2.3 Ruby:1.8.7 Rails:2.3.2 クライアントOS:Windows Vista tortoiseSVN:1.6.5 リポジトリへの接続方法:svn+ssh コミットユーザー:user1

  • Macでsubversionのコミットができない

    Win、Mac混在環境で、subversionによるデータ共有ついて質問です。 制作したサイトのhtmlデータ等を、 WinとMacそれぞれのsubversionクライアントを使用して subversionでデータを共有したいと考えています。 WinはTortoiseSVN、macはversionsを使用しています。 リポジトリを共有の外付けハードディスク(buffalo)に作成しました。 Winからはチェックアウト、コミット共に問題なく利用できますが、 Macからはチェックアウトは出来るが、コミットがエラーがでて出来ません。 エラーは下記のようなエラーになってしまいます。 Commit failed (details follow): Can't get exclusive lock on file '/Volumes/subversion/svn/db/txn-current-lock': Operation not supported MACのVersionsでのリポジトリのパスの指定方法がちがうのかな?と思っていますが、 いろいろ試してもうまくいきません。共有サーバのパスもMACとWinで異なるのでしょうか? よろしくお願いします。

  • svnserverを設置したがコミットできない

    現在、自分のwindows10のPCにSVNサーバを、下記のサイトを参照しながらインストール作業を行っています。 WindowsにSubversion 1.12サーバーを構築する https://blogs.osdn.jp/2019/06/14/subversion.html 最後まで進めて、新規に作成したリポジトリの"repos"というのをtortoiseSvnで svn://192.168.1.188/repos というURLでチェックアウトするとできるのですが、テキストファイル1個をコミットしようとすると、なぜか Error Commit failed (details follow): Error Authorization failed このようなメッセージが出てきてコミットが失敗します。 メッセージ内容でググってみたところ次のようなサイトが出てきました。 https://axion.sakura.ne.jp/blog/index.php?UID=1414755723 このサイトの内容から、svnserve.confの中身の一部に修正を加えないといけないとのことなのですが、 C:¥Apache24 このフォルダ内にsvnserve.confのファイルが見当たらないのですが、どのように解決したら良いかご存知の方いらっしゃいましたら、ご教示よろしくお願い致します。

  • Subversionのコミットエラー通知し

    Linux環境(centOS6.5)でSubversion(1.6.xxx)の検証を行っているのですが post-commitフックでのコミット成功通知メールは完了しました。 しかし、コミットをcronで自動化する予定なので コミット時にエラーが発生した際に 関係者へコミットできなかった際のメール通知を行いたいと考えております。 調べてみるとできないような雰囲気なのですが どなたか有識者の方でご存じの方はいらっしゃらないでしょうか? メール通知問わず、エラーがどんな形でも関係者へ 通達できれば問題ありません。 運用としてログを見るしかないのであれば それも視野には入れてます。。。

  • subversionでコミットしたらftpなどしなくても即反映したい

    最近subversionを試験的に導入してみているのですが これがあればソースコードの一括管理などが出来き 趣味ですが1人で開発するにしても世代管理などがあっていいですね! そこで最近、このように出来ないのか?と悩んでおります。 ---------------------------------------------------------------- ■subversionが導入される前 1.Windows上のローカルで開発(127.0.0.1) ↓ 2.LinuxにあるFTPサーバー(192.168.0.50)へアップロード ↓ 3.Windows上のブラウザで表示の確認(http://192.168.0.50/) といったようなことをしていたのですが、ソースコードの世代管理と一元管理をしたいので FTPサーバーが立っているLinux(192.168.0.50)にsubversionをインストールしました。 ■subversionが導入された時(導入された今の現状) 1.Windows上のローカルで開発(127.0.0.1) ↓ 1b.Linuxにあるsubversionサーバー(192.168.0.50)へTortoiseSVNを使用してコミット ↓ 2.LinuxにあるFTPサーバー(192.168.0.50)へアップロード ↓ 3.Windows上のブラウザで表示の確認(http://192.168.0.50/) ですが、以下のような手順にならないでしょうか? ■subversionが導入された時(こんな風にはできないの?) 1.Windows上のローカルで開発(127.0.0.1) ↓ 2.Linuxにあるsubversionサーバー(192.168.0.50)へTortoiseSVNを使用してコミット ↓ 3.Windows上のブラウザで表示の確認(http://192.168.0.50/) ---------------------------------------------------------------- つまり具体的な開発のシーンケースはこのような感じです。 Windows上で開発をしています。 そこでチェックアウトされたファイルを作ったり変更したり作成を行いました。 そして、ある程度、ローカルで色々開発をしローカルで動作確認をした後、 TortoiseSVNでコミットをします。 そのコミット先は、subversionのリポジトリ(192.168.0.50)です。 その後、WindowsでFFFTPを使用して、(192.168.0.50)のサーバーにアップロードをします。 アップロード後、Windowsでhttp://192.168.0.50/ でアクセスをして確認をします。 この状況でも満足なのですが、 もっと欲を言えば、コミットの作業をしたら、ファイルが自動でftpなどがされ 即時反映しないのかな?と思うのです。 もしもこのような動作が無理であれば リポジトリになどに対して現在の最新のリビジョンのファイルって 持たせることはできないんでしょうか? なにぶんsubversionは(私ではノウハウが弱い) まだ具体的になにが出来てなにが出来ないといったことが 理解できてないので、そういうの出来ますよ。それは無理ですよ。 といった事柄でも助かります。 ただlinuxに対してもノウハウが弱いので、 もしこのようなことが可能であるならば そのようなサイトなどを紹介しているサイトか、詳細を教えていただきたいと思います。(linuxはredhatを使用しています)

  • SVNコミットエラー

    linux(Ubuntu)でSubVersionサーバを構築したのですが、 初回コミットをしたところエラーが出てしまいました。 エラー-------- svn import /home/svn/snavi/ http://localhost:80/repos/snavi -m "test commit" svn: PROPFIND リクエスト (相手: '/repos/snavi') が失敗しました svn: PROPFIND (URL: '/repos/snavi'): 301 Moved Permanently (http://localhost) -------------- この辺の記事(http://a98.jugem.jp/?eid=222)を参考に 色々試してみたのですが、解決できません。 apacheは起動しており、FireFoxからはテスト用HTML http://localhost/repos/snavi/test.html は参照出来ていますが、 http://localhost/repos/snavi/ へのチェックインが出来ないのです。 SVNのルート設定は以下で、 [svn設定]--- (/etc/apache2/mods-enabled/dav_svn.conf) <Location /svn> DAV svn SVNParentPath /home/svn/ </Location> ------------------------------------------- http://localhost:80/repos はSVNルートへのシンボリックリンクです。 [web(apache)設定]---------------- (ドキュメントルート) http://localhost → /opt/lampp/htdocs (シンボリックリンク) $ls -la /opt/lampp/htdocs lrwxrwxrwx 1 www-data www-data 9 2012-10-04 22:28 repos -> /home/svn ------------------------------------------- SVNルート以下には ------------------------------------------ cd /home/svn/ svnadmin create snavi ------------------------------------------ のようにsnaviブランチを作成したのですが、 やはりhttp://localhost/repos/snavi/ へのチェックインが出来ません。 有識者の方、いらっしゃいましたらどうか ご教授のほど宜しくお願い致します。

  • Subversionでエラー

    Subversionで 「svn: リポジトリは恒久的に 'http://localhost/svn/4514/' へ移動しました。relocate (参照 URL の変更) を実行してください」 というエラーが発生します。 OSはUbuntu 11.10です。LAMPP(XAMPP)を使っています。 Subversion自体は正常にインストールできたようです。 Subversion自体は/home/username/svnの下ではちゃんとaddとcommitが動きました。 設定には↓のサイトを参考にしました。 http://blog.riywo.com/2008/04/01/054421 ただ、それをhttp://localhost/svn/4514/の下でブラウザから動かしたいんです。 /opt/lampp/etc/httpd.confには DocumentRoot "/opt/lampp/htdocs" としてあります。ですから、/opt/lampp/htdocsがlocalhostです。 /opt/lampp/htdocs/svn/ というディレクトリを作成し、その下で sudo svnadmin create 4514 sudo chown -R www-data.www-data 4514/ sudo chmod 777 4514/ を実行しました。 http://localhost/svn/4514/にはブラウザから問題なくアクセスでき、ファイルの内容を見ることができます。 sudo vim /etc/apache2/mods-enabled/dav_svn.conf で以下のように編集しました: <location /svn> DAV svn # SVNParentPath "/home/username/svn" ←これがadd/commitが動いたディレクトリです SVNParentPath "/opt/lampp/htdocs/svn" # SVNParentPath "/opt/lampp/htdocs/svnrepository" </location> /home/username/sagyou/source の下には"Hello World!"と書かれたfirst.txtというファイルが作ってあります。 これで svn import ~/sagyou/source http://localhost/svn/4514/ -m "first import" と実行すれば、/4514の下に~/sagyou/source/first.txtがコピーされるはずなんですが、 「svn: リポジトリは恒久的に 'http://localhost/svn/4514/' へ移動しました。relocate (参照 URL の変更) を実行してください」 というエラーが発生します。 このエラーに関するサイトを10個は読んだのですが、まったく意味が分かりません(具体的な例が分かりません)。特に↓ここです: http://www.hinet.mydns.jp/tdiary/?date=20050317#p02 SVNParentPath "/opt/lampp/htdocs/svnrepository"に変えてみても同じです。 ちなみに、DocumentRootは変えたくありません、既にその下にPHPのファイルなどを入れているからです。 もう昨日からずっとやっているのに解決できません。でも、あと一歩のような気がします。必要であれば補足します。試してほしい操作があればやります。どんな小さなヒントでもいいので、どうかお助けください。お願いします。

  • TortiseSVNでコミット時にロックを外さない

    サーバー:Subversion1.6.13 クライアント:TortiseSVN1.6.11 <やりたいこと> TortiseSVNからコミットしたときにロックの開放を行わないようにしたい。 ロックの開放はTortiseSVNメニューの「ロックの開放」のみで、出来るようにしたい。 <制限> TortiseSVNのコミット時のダイアログの「ロックを保持」にチェックする方法では、 チェックし忘れがあるため少なくともデフォルトでチェックが入っているようにしたい。 <ためしたこと> 「post-commit」スクリプトにて svn lock --force xxx とコミットしたファイルを再ロックしようとしたが、できなかった。 よい方法をご存知の方がいましたらよろしくおねがいします。

  • subversionのBASIC認証の回数について

    初めまして。x86machineと申します。 現在ファイルのバージョン管理を行うため、subversionの導入を行っております。 Linux(CentOS)サーバへsubversionを追記致します参考にしたサイトで紹介している設定方法に従ってWebDAV経由で Basic認証をパスする形でリポジトリでアクセスできるよう設定しました。 WindowsクライアントにインストールしたTortoiseSVNからリポジトリへアクセスしたところ、アカウントを間違えずに入力したとしても、 BASIC認証の要求ウィンドウが2~3回繰り返し表示されてしまいます。 要求された分、間違えずにユーザ名とパスワードを入力すればリポジトリを閲覧することができ、データのチェックアウトやコミットも行うことができます。 subversionでは、BASIC認証でパスワードを入力要求の回数は数回繰り返されるのが普通なのでしょうか? Apacheのエラーをログから確認したところ、認証を行っている間ずっとHTTPの207エラーをはいていたようです。 設定を見直したのですがどこがどう違うのか分からなかったため、質問を投稿させていただいた次第です。 WebDAV、若しくはsubversionの設定に何か間違いがあるのでしょうか? コンフィグ・ファイルの内容と、Apacheのエラーを追記致しますので、何かご回答をいただければと思います。 また、質問内容や原因を判断するにあたっての必要なデータに不足がありましたら、お手数ですがこちらもご指摘いただきたいと思います。 宜しくお願いします。 ----------------------------------------------------------- ・環境について  サーバ   : CentOS 5.0  クライアント: Windows 2000 Professional (32bit) 及び Windows XP Professional (32bit) Apache : 2.2.3-11.el5 subversion : 1.4.2-2.el5 mod_dav_svn : 1.4.2-2.el5   他   : TortoiseSVN 1.5.6, Build 14908 - 32 Bit ・リポジトリの作成場所  /var/www/配下に"svn"フォルダを作成し、その中に作成。 ・subversion,WebDAV設定の際に参考にしたサイト  http://www.proton.jp/apps/subversion.html  http://sfi.hamazo.tv/e1447564.html  http://d.hatena.ne.jp/ishikawa84g/20080915/1221424863  http://www.server-world.info/note?os=ce5&p=subversion  http://park1.wakwak.com/~ima/centos4_subversion0001.html ・subversionのコンフィグファイルの内容       …… <Location /svn/> DAV svn SVNParentPath /var/www/svn #Limit write permission to list of valid users. #<LimitExcept GET PROPFIND OPTIONS REPORT> #Require SSL connection for password protection. #SSLRequireSSL AuthType Basic AuthName "Authorization Realm" #AuthUserFile /path/to/passwdfile AuthUserFile /var/www/svn/.htpasswd AuthzSVNAccessFile /etc/httpd/svnaccess Require valid-user #</LimitExcept> </Location> ・BASIC認証時、Apacheのエラー  (端末からsvnuserとしてリポジトリへアクセス。) 192.168.1.197 - svnuser [27/Jan/2009:19:59:46 +0900] "OPTIONS /svn/project HTTP/1.1" 200 - 192.168.1.197 - svnuser [27/Jan/2009:19:59:46 +0900] "PROPFIND /svn/project HTTP/1.1" 207 653 192.168.1.197 - svnuser [27/Jan/2009:19:59:46 +0900] "PROPFIND /svn/project/!svn/vcc/default HTTP/1.1" 207 404 192.168.1.197 - svnuser [27/Jan/2009:19:59:46 +0900] "PROPFIND /svn/project/!svn/bln/9 HTTP/1.1" 207 455 192.168.1.197 - svnuser [27/Jan/2009:19:59:46 +0900] "PROPFIND /svn/project HTTP/1.1" 207 653 192.168.1.197 - svnuser [27/Jan/2009:19:59:46 +0900] "PROPFIND /svn/project/!svn/vcc/default HTTP/1.1" 207 404 ……

  • apache + svn での実行ユーザ

    リポジトリーをsvn + apache + sslで構築しております。 構築作業を完了しチェックアウトおよびブラウザからの確認まではできるようになったのですが、コミット時に以下のエラーがはかれてしまいます。 svn: Commit failed (details follow): svn: Commit failed (details follow): svn: Can't create directory '/var/lib/svnprj/*****/db/transactions/1-1.txn': Permission denied svn: MKACTIVITY of '/svn/*****/!svn/act/90df1d5c-1a01-0010-8e67-11194141f511': 500 Internal Server Error (https://www.********.co.jp) 権限の問題でディレクトリを作る権限が実行ユーザにないのが原因と思いますが、該当の権限は以下のようになっておりました。 drwxr-sr-x 7 apache apache 4096 Jun 2 12:49 ***** svnをapache経由で操作した場合はapacheアカウントで実行すると 思っているのですが、ちがうのでしょうか。 --------- ちなみに該当のディレクトリを chmod -R 777 ***** にするとコミットすることが可能になりました。