Permissions

Trac + git + post-receive hooks -> Git 使用者無法正確呼叫 trac-admin

  • August 18, 2012

一段時間後,我終於使 trac 與 git 連接,但現在我在設置接收後掛鉤時遇到問題。

我的 git 使用者是 www-data 組的一部分,而 www-data 也是 git 組的一部分。但問題是,post-receive 掛鉤使用此程式碼(python)來呼叫 trac-admin:

args = [TRAC_ADMIN, TRAC_ENV, 'changeset', 'added', REPO_NAME] + commits
call(' '.join(args), shell = True)

這在 shell 中呼叫以下內容:

/usr/bin/trac-admin /var/lib/trac/MyTrac changeset added /home/git/repositories/mynewrepo.git/ 372ba439b9fa430c932095de608cb084d6ab98eb

但是當我去 trac 和應該由完成的送出引用的票時,我什麼也沒得到。

但是,更奇怪的是,如果我只是複制呼叫並在終端(在伺服器中)執行它,那麼票證就會更新。

我再次測試,這一次,我做了一個新的送出,再次沒有更新票證,然後在伺服器中完成:

su git

並呼叫了命令,看到沒有更新票證……然後,用root呼叫它我可以讓它工作……

那麼,這裡發生了什麼?為什麼我的 git 使用者可以呼叫 trac-admin

我不知道這是否是問題的一部分,但是當我執行 which trac-admin 時,我得到:

/usr/bin/trac-admin

這歸root所有。

那麼我應該如何讓 git 使用者呼叫 trac-admin 呢?

謝謝

所以,最後我無法完成這項工作,所以我設法從頭開始重新安裝所有東西。

當我安裝 trac 時,我沒有使用apt-get install tr​​ac,而是****從 github (trac 0.12)下載了原始碼並從那里安裝了它(也帶有 requeriments)。

完成此操作後,使用“which trac-admin”檢查了 trac-admin 的位置,它給了我:

/usr/local/bin/trac-admin

在安裝和配置之後,一切正常。

所以我相信 apt-get install 不是在 trac 中做事的好方法。

希望這對可能遇到此問題的任何人都有幫助。

OBS:我在github中保存了安裝apache2+trac+git+hooks的腳本,如果有人想在這裡使用連結:https ://github.com/arruda/TRAC-GIT-HOOKS

引用自:https://serverfault.com/questions/417467