trac-post-commit-hookを使用してコミットを実行すると、MERGE 200 OKエラーが発生します。これは、サーバーではコミットが成功したが、ローカルマシンではファイルステータスが更新されていないことを意味することを理解しています。しかし、とにかくこの問題を修正する方法が見つかりません。これは私のセットアップまたはスクリプトの何かに問題がありますか?私はtracサイトの標準スクリプトを使用しており、tortoiseSVNを介してWindows2008サーバーでホストされているVisualSVNサーバーにコミットしています。コマンドラインからスクリプトを実行してもエラーは発生しませんが、このエラーはTortoiseSVNからのみ発生します。
3 に答える
Debian "Lenny" で Trac & Subversion を使用すると、このエラーが発生しました。
私にとっては、Trac のバグに要約されました。trac.util.datefmt では:
def to_timestamp(dt):
"""Return the corresponding POSIX timestamp"""
if dt:
diff = dt - _epoc
return diff.days * 86400 + diff.seconds
else:
return 0
dt はタイムスタンプです。したがって、最初に日時に変換します。
def to_timestamp(dt):
"""Return the corresponding POSIX timestamp"""
if dt:
dtt = to_datetime(dt)
diff = dtt - _epoc
return diff.days * 86400 + diff.seconds
else:
return 0
trac.env.Environment の 'href' および 'abs_href' 属性は取得専用のプロパティであるため (setter はありません)、trac-post-commit-hook スクリプトの問題を修正する必要があります。
--- trac/trac-post-commit-hook (revision 8)
+++ trac/trac-post-commit-hook (working copy)
@@ -152,11 +152,7 @@
self.author = chgset.author
self.rev = rev
self.msg = "(In [%s]) %s" % (rev, chgset.message)
self.now = int(time.time())
- if url is None:
- url = self.env.config.get('trac', 'base_url')
- self.env.href = Href(url)
- self.env.abs_href = Href(url)
これはすべて Debian "Lenny"、trac 0.11.1-2.1 にあります
Trac とは関係のないフックでこの問題が発生しました。ポストコミットから、svnlook を変更し、レポジトリで cat を行う他のスクリプトを呼び出したところ、MERGE 200 OK エラーが発生しました。解決策は、バックグラウンドで他のスクリプトを呼び出して、スクリプトの開始直後にフックが終了するようにすることでした。
Trac post-commit フックの問題は次のように聞こえます。
http://ariejan.net/2007/05/21/merge-request-failed-on-pathtofile/