2

私は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

それも役に立たなかった。ルートとしてコミットすることは機能しますが、私自身としては機能しません。

これは私が試みるのをやめて、あなたの助けを求めるところです。

4

1 に答える 1

2

CommitTicketUpdater変更セットの作成者をパーミッションチェックに使用します(とにかくパーミッションチェックを無効にします)。UNIXユーザーは何にも使用しません。

認証されたユーザーは、ではなくの権限を継承するため、に与えるTRAC_ADMINことanonymousも何もしauthenticatedませんanonymous

ルートとして実行trac-admin $ENV changeset addedしたときにチケットの更新が機能するという事実は、実際に(ファイルシステム)パーミッションの問題を示しています。なぜそれがうまくいかないのかsudoは少し不思議です。trac-admin実行中のユーザーには、すべてのTrac環境に対する読み取りおよび書き込み権限が必要であることに注意してください。

リポジトリにリポジトリタイプを使用していますかsvn、それともsvn-direct?後者の場合、環境への書き込み権限がなくても、チェンジセットがTracに表示されます。

ロギングレベルを上げてDEBUG、ログが何かを教えてくれるかどうかを確認することをお勧めします。また、trac-usersメーリングリストに参加して、そこで質問することをお勧めします。Tracのセットアップに精通しているより多くの人々にリーチできます。また、SOは質問をするための優れたプラットフォームですが、インストールのデバッグには理想的ではありません。

于 2012-12-11T21:04:00.233 に答える