2011-09-01 10 views
6

आदेशों वहाँ Git हुक में गूंज सक्षम करने के लिए किसी भी तरह से हैGit हुक: सक्षम गूंज

/var/git/repositories/project.git/hooks/post-update 

#!/bin/bash 
unset GIT_DIR; 
echo '========post-update hook=========' 

cd /var/project; 
git reset --hard; 
git checkout testing; 
git pull; 
chmod -R 774 ./lib 

update-apps 

वांछित एक और मशीन पर Git धक्का उत्पादन:

#git push 
... 
Writing objects: 100% (10/10), 5.98 KiB, done. 
Total 10 (delta 3), reused 8 (delta 1) 
========post-update hook========= 
cd /var/project 
git reset --hard 
git checkout testing 
git pull 
chmod -R 774 ./lib 
update-apps 

यह है सिर्फ एक उदाहरण है, वास्तविक आदेश श्रृंखला और अधिक जटिल

हो सकता है और कहीं न कहीं असफल

मैं stdout ही रीडायरेक्ट कर सकते हैं किसी भी तरह से stderr करने के लिए?

अद्यतन

वर्तमान में मैं git push उत्पादन और उसके बाद ========post-update hook========= ... और कुछ भी नहीं

ओह सामान्य है! गिट संस्करण 1.5.6.5

+1

लेकिन जब आपने कोशिश की तो आपका वास्तविक आउटपुट क्या था? –

+1

जांचें कि हुक निष्पादन योग्य है (chmod + x) – sehe

उत्तर

3

या तो stdout या stderr पर सभी आउटपुट को अग्रेषित किया जाना चाहिए। यह pre-receive, update, post-receive और post-update हुक के लिए काम करने की उम्मीद है। बोर्न शेल में set -x के साथ इकोइंग कमांड सक्षम किया गया है।

+0

set -x: मेरी समस्या ठीक है, धन्यवाद – jonny

2

githooks मैनुअल से:

दोनों मानक आउटपुट और मानक त्रुटि उत्पादन, दूसरे छोर पर भेजने पैक git करने के लिए भेजा जाता है ताकि आप उपयोगकर्ता के लिए बस गूंज संदेशों कर सकते हैं।

लेकिन गिट के कुछ पुराने संस्करणों और स्मार्ट HTTP के पहले संस्करण में एक ज्ञात समस्या थी, जिससे आउटपुट नहीं भेजा गया था। अपने गिट संस्करण को अपडेट करें और कोशिश करें।

संबंधित मुद्दे