0

Windowsでコミット後のフック(リポジトリとTracをローカルで実行)を使用してコミットしようとすると、悪名高い「MERGE of'whatever':200 OK」が表示され、夢中になります。私は解決策を見つけることなく、1日中ずっと探していました。

これがその設定方法と私がこれまでに試したことです:

設定:Windows 7(64ビット)VisualSVNサーバーTortoiseSVN Trac 0.11.6

  • Windowsでのポストコミットに3つの標準スクリプトを使用しています。
  • パラメータとしてrepoとchangesetnumberを使用してコマンドプロンプトからpost-commit.cmdを実行すると、すべてが機能します。
  • 徹底的なトラブルシューティングの結果、trac-post-commit.cmdの最後の行を削除すると、Python "%〜dp0 \ trac-post-commit-hook.py" -p "%TRAC_ENV%" -r " %REV% "-u"%AUTHOR% "-m"%LOG% "、コミット失敗エラーはなくなります。
  • Pythonスクリプトに1/0を追加(ゼロ除算エラーを生成)しても、何も変わりません。ただし、コマンドプロンプトからエラーが発生します。
  • Pythonスクリプトのすべてのコードを削除すると、コミットの失敗もなくなります。そのため、原因はtrac-post-commit-hook.pyにあると思います。

おそらく、実際のエラーをログファイルに送信できれば、もう少し深く掘り下げることができますが、その方法はわかりません。

post-commit.cmd:

%〜dp0 \ trac-post-commit-hook.cmd%1%2を呼び出します

trac-post-commit-hook.cmd:
http ://trac.edgewall.org/browser/trunk/contrib/trac-post-commit-hook?rev=920

どうもありがとうございました、誰かがここで少し助けてくれるなら、それはたくさんのことを意味します!/マーティン

4

1 に答える 1

0

SVNコミットの実行中にエラーメッセージを受け取るには、次を変更できる必要があります。

if __name__ == "__main__": 
    if len(sys.argv) < 5: 
        print "For usage: %s --help" % (sys.argv[0]) 
    else: 
        CommitHook() 

に:

if __name__ == "__main__": 
    if len(sys.argv) < 5: 
        print "For usage: %s --help" % (sys.argv[0]) 
    else: 
        try:
            CommitHook()
        except Exception, e:
            print >> sys.stderr, str(e)
            sys.exit(1)
于 2010-02-23T19:10:32.477 に答える