2012-12-10 84 views
0

我使用ssh訪問遠程git存儲庫。我在鉤子目錄中添加這樣一個簡單的後收到腳本:Post-receive掛鉤無法識別參數

#/bin/sh 
REPO="$1" 
REV="$2" 
echo $REPO $REV >> /var/log/gitlog 

我改變了本地PC的代碼,並推了很多次,我什麼也沒看見在/var/log/gitlog。我已經檢查了收到後的許可。其文件掩碼已設置爲777.所有用戶都可以在控制檯上執行腳本。

回答

1

這可能是因爲該鉤子(post-receive)沒有采取任何參數。

gitHooks

該鉤子的git - 接收包的遠程倉庫,當一個混帳推是在本地倉庫中進行恰好調用。它在更新所有ref後立即在遠程存儲庫上執行。

該鉤子爲接收操作執行一次。 它不需要任何參數,但會獲得與pre-receive掛鉤在其標準輸入上相同的信息。

This answer提到:

您必須使用read命令。

#!/bin/sh 
read oldrev newrev refname 
... 
+0

你是對的。我不能用$ 1來獲取參數。我從SVN鉤子複製了這個腳本,並提出了這個問題。使用「讀取oldrev newrev refname」是正確的方法。非常感謝! – flypen