2012-11-01 73 views
4

這是我到目前爲止已經完成:Git的後收到鉤不觸發外部腳本

  1. 我有託管網站及其Git倉庫的服務器。
  2. 我有一個名爲git用戶擁有所有的回購和具有任何用戶登錄時無需輸入密碼的能力。
  3. 我在我的回購庫的hooks目錄中創建了一個名爲post-receive的鉤子。
  4. 我還創建了一個名爲gitpull的腳本,可以自動將信息提供給站點。

一切都是O.K.當我鍵入此命令:

su - git -c "/git/sitename.git/hooks/post-receive" 

,但是當我把東西從我的機器,它沒有運行該腳本gitpull

這裏是我的文件:

  • /etc/gitpull

    #!/bin/bash 
    su - $1 -c "cd ~/www;git pull;" 
    
  • /git/sitename/hooks/post-receive

    #!/bin/bash 
    /etc/gitpull sitename 
    

我怎樣才能解決這個問題?我究竟做錯了什麼?

+0

'{%GIT REPO%}'看起來奇怪 – tuergeist

+1

{%GIT REPO%}是回購的名稱例如mysapmplerepo –

+0

我假設你的意思是'su - sh -c ...',因爲'git -c'用於設置一次性配置選項。 –

回答

1

post-receive鉤需要被標記爲可執行或git會不運行它。當您使用sh -c進行測試時,您正繞過執行權限檢查。

我敢打賭,如果你運行chmod a+x /git/sitename.git/hooks/post-receive它會工作。


所以不是這樣,是吧?

哦,su提示輸入密碼,當你運行它,不是嗎?你不能提供輸入到鉤子,所以你需要確保你可以自己輸入/git/sitename.git/hooks/post-receive作爲你的普通用戶帳號,並讓它在沒有任何交互的情況下運行。

+0

還沒有工作 –