私はsvnと一緒に問題追跡システムとしてtracを使用しています。最近、コミットメッセージが、trac 0.12(私が使用しているバージョン)以降、配布されたCommitTicketUpdater(tracoptに表示)を使用してチケットを変更(コメントを追加、閉じる)する可能性があることを発見しました。
これはubuntu12.04にインストールされています。私のコミット後のコードはそれと同じくらい簡単です:
REV="$2"
/usr/bin/trac-admin /var/trac/proj changeset added robo $REV
ここで、「robo」は、tracで定義されているリポジトリの名前です。これは実際には非常にうまく機能します。チェンジセットは、svncommit中に書き込まれたコミットメッセージとともにtracに表示されます。問題はここにはありません。
プラグイン(http://trac.edgewall.org/wiki/CommitTicketUpdater)は、コミットメッセージで「see#22」や「fix#23」などの文字列を探し、関連するチケットを更新/閉じる必要があります。これは構文が非常に柔軟です。管理者のWebタブからプラグインを有効にして(そして変更を適用して)、アップグレードを試みました(ただし、アップグレードは必要ありませんでした)。
trac.iniファイルの[ticket]の下にプラグインを設定したので、次のようになります。
commit_ticket_update_envelope =
commit_ticket_update_commands.close = close closed closes fix fixed fixes
commit_ticket_update_commands.refs = <ALL>
commit_ticket_update_check_perms = false
commit_ticket_update_notify = false
しかし、私はこれらの行のいくつかにコメントすることを含めて、他の多くのバリエーションを試しました。[]を封筒オプションに入れようとしましたが、それは変わりませんでした。
結論として、チェンジセットが追加されても、チケットには何も変更されません。
これは権限の問題かもしれないと思っていました。したがって、匿名にTRAC_ADMINを追加しましたが、何も変更されていません。tracがLinuxユーザーをどのように処理するかわからないことに気づきました。それらはWebサーバーに対して認証されません...しかし、他にどのようにそれを行うことができますか?
だから私はrootでコミットしました、そしてそれはうまくいきました。つまり、これはすべてLinuxの権限に関するものです。しかし、私のユーザーは「svn」グループに属しており、プロジェクトフォルダー全体に書き込み権限があります。ただし、これでは不十分ですが、rootでコミットすることはできます。
私の次の方向性は、そのフックの操作のためのパスワードなしで、自分自身(および他のコミッター)をsudoersに追加することでした。
これは次のように行われました。「hanszdebi=NOPASSWD:/ usr / bin / trac-admin」(debiはサーバー名、hanszはユーザー名)を追加し、コミット後の行を次のように変更しました。
sudo -u root /usr/bin/trac-admin /var/trac/proj changeset added robo $REV
それも役に立たなかった。ルートとしてコミットすることは機能しますが、私自身としては機能しません。
これは私が試みるのをやめて、あなたの助けを求めるところです。