svnでpost-commitが正常に動作しません。


commitユーザーで直接post-commitを実行した場合は正常にスクリプトが実行されています。

不思議なことがあるのですが、
echo 1 >> $LOGFILE
sshでサーバー1にログインをしてsvn updateコマンドを実行 >> $LOGFILE
echo 2 >> $LOGFILE
sshでサーバー2にログインをしてsvn updateコマンドを実行 >> $LOGFILE
echo 3 >> $LOGFILE
とpost-commitに記載した場合、何故か1¥n 2¥n 3¥nはログに出力されているのですが、
その間のsvn updateの処理はログが出力されていません(実際にアップデートもされていません。)

しかし、直接post-commitを実行した場合はsvn updateも正常に実行されています。
これが不思議で仕方ありません。

何かおわかりになる方いらっしゃいましたら、ご教授下さい。

回答の条件
  • 1人2回まで
  • 登録:2008/01/06 15:19:51
  • 終了:2008/01/08 13:20:03

回答(1件)

id:ffmpeg No.1

ffmpeg回答回数1202ベストアンサー獲得回数92008/01/08 01:20:45

ポイント60pt

パーミッションの制限だと思います。そのユーザーに変更できないディレクトリなどがあるのです。

id:tomoyuki28jp

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

原因はコメント欄に記載してある通りでした。

どうもありがとうございました。

2008/01/08 13:18:41
  • id:ttamo
    何も調べずに書きますが、printenv あるいは env を実行してみるとどうなるでしょうか。
    つまり、echo 1 とか svn update の部分を printenv と書きかえて、svn から呼び出したときと直接実行したときの違いを見るわけです。
    そうすると 4 種類の printenv 結果が得られると思います。
    (svn からのローカル環境、svn からの ssh 先の環境、直接のローカル、直接の ssh 先の環境)

    あと、ssh が失敗したときの stderr もリダイレクトするように 2>&1 とか書いといたほうが……。


  • id:tomoyuki28jp
    ttamoさん

    コメントどうもありがとうございます。


    > ssh が失敗したときの stderr もリダイレクトするように 2>&1 とか書いといたほうが

    これでやってみたところ、sshとsvnのパスが不正であったという凡ミスであった
    ことが判明し、問題が解決しました。
    たったこれだけのことに数時間費やしました orz

    宜しければポイントとイルカ賞を差し上げますので、
    ひとことで結構ですので、何か回答欄に記載して頂けますでしょうか。

    この度はどうもありがとうございました。
    本当に助かりました。
  • id:tomoyuki28jp
    ttamoさん

    ご回答がないようですので、一旦質問を終了させて頂きます。
    この度はどうもありがとうございました。

    今後とも宜しくお願い致します。

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

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

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

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