अद्यतन अगस्त 2013, नवीनतम gitolite साथ: अब आप official specific repo hook है:
यह मूल रूप से बस (gitolite-admin
रेपो को छोड़कर)
$rc{LOCAL_CODE}/hooks/repo-specific
अंदर कुछ फ़ाइल की ओर इशारा करते
<repo.git>/hooks
में एक सिमलिंक बनाने है
मूल उत्तर (
सबसे पहले, यदि आप gitolite वी 3 का उपयोग कर रहे हैं, तो आप किसी भी हुक एक post-receive
हुक सहित परिभाषित कर सकते हैं, (update
हुक को छोड़कर, using hooks देखें): पहले से, gitolite V2 साथ, pre-receive
हुक आरक्षित किया गया।
अब आप gitolite-admin/common/hooks
स्थानीय क्लोन निर्देशिका में कॉपी, और gitolite सर्वर से gitolite-admin
धक्का वापस द्वारा एक हुक जोड़ सकते हैं: gitolite सुनिश्चित करें कि हुक के लिए सभी नंगे रेपोस यह प्रबंधन करता घोषित किया जाता है कर देगा।
आप सीधे अपने हुक सर्वर पर $LOCAL_CODE
"rc
" चर द्वारा डिजाइन एक अलग स्थान पर जोड़ सकते हैं ("rc
" अपने gitolite.rc
config file में परिभाषित करने का मतलब है): $LOCAL_CODE/hooks/common
। "customizing gitolite" देखें।
विचार यह सुनिश्चित करना है कि एक गिटोलाइट अपग्रेड आपके किसी भी कस्टम प्रोग्राम को मिटा नहीं देता है।
बस एक 'के बाद प्राप्त होता है' फ़ाइल, निष्पादन योग्य (chmod 755
) को परिभाषित है, और यह अपनी पसंद का common/hooks
निर्देशिका (gitolite-admin
स्थानीय रेपो प्लस git push
, या .gitolite
सर्वर पर, या $LOCAL_CODE
सर्वर पर) में कॉपी।
नोट: यह तथ्य कि आपको 'post-receive.sample
' फ़ाइल नहीं दिखाई देती है, वह आपको उस हुक को परिभाषित करने से नहीं रोकती है।
यदि सर्वर पर सीधे किया जाता है, तो आपको अपने कस्टम हुक पर नंगे रेपो पर सेट करने के लिए gitolite setup --hooks-only
चलाने की आवश्यकता है।
आप कभी भी ऐसा नहीं करेंगे कि इसे सीधे अपने bare-repo.git/hooks
निर्देशिका में से एक पर कॉपी करें: यह आपके सभी नंगे रेपो में "सामान्य" हुक प्रकाशित करने के लिए गिटोलाइट का काम है।
इस तरह, आप उन्हें सीधे gitolite-admin
रेपो में से किसी क्लोन के माध्यम से प्रबंधन कर सकते हैं (वापस धक्का कि रेपो किसी भी हुक है कि आप परिवर्तित हो सकता है अद्यतन करेगा)।
"सभी नंगे रेपो" का अर्थ है अपने post-receive
हुक पता होना चाहिए क्या नंगे रेपो यह पर चल रही है:
आप ऐसा कर सकते हैं द्वारा checking the value of $GIT_DIR
(नंगे रेपो इस हुक चल रहा है, जिस पर की जड़ .git
निर्देशिका के लिए सेट)।
अंत में, post-receive
हुक के इस प्रकार के लिए, "Git checkout in post-receive
hook: “Not a git repository '.'
”" देखें:
आप अपने git pull
सफल होने के लिए आदेश में GIT_DIR
और GIT_WORK_TREE
स्पष्ट गंतव्य रेपो को परिभाषित करने की जरूरत।
GIT_WORK_TREE=/Users/me/Sites GIT_DIR=/Users/me/Sites/.git git pull
मैं सेटअप रेपो विशेष-हुक (v3) का उपयोग कर की कोशिश की है: ** 1 ** मैं बनाया 'LOCAL_CODE =>,' में "$ ENV {गृह}/gitolite/स्थानीय।" rc ** 2 ** मैं जोड़ने ' 'रेपो विशेष-हुक',' आर सी में सरणी को सक्षम करने के ** 3 ** मैं dir 'स्थानीय/हुक/रेपो विशिष्ट बनाया /' मेरी gitolite-व्यवस्थापक में, प्रतिबद्ध और धक्का दिया कि ** 4 ** मैं स्ट्रिंग जोड़ें: 'विकल्प hook.post-प्राप्त conf में = deploy' /' testing' रेपो के लिए gitolite.conf, बनाई गई फ़ाइल 'स्थानीय/हुक/रेपो विशिष्ट/में deploy' 0755 के साथ conf फ़ाइल, और प्रतिबद्ध है और उन्हें धक्का दे दिया ... ** 5 ** मैं प्रतिबद्ध किए/परीक्षण रेपो को धक्का, हुक निकाल दिया नहीं गया था, क्या मैं गलत किया ? सुनिश्चित करें कि आप नवीनतम gitolite हालांकि बनाती हैं: –
सिमलिंक यहाँ नहीं भी, किसी भी सफलता –
बिना 'gitolite सेटअप --hooks-only' चलाने के लिए @eicto मैं gitolite में रेपो विशेष हुक के लिंक के साथ था जवाब संपादित किया है की कोशिश की। – VonC