आप अपने सर्वर पर डेटाबेस या फ़ाइल को अद्यतन करने के लिए post-checkout
हुक का उपयोग कर सकते हैं। यह हुक क्लाइंट-साइड पर चलता है (यानी, क्लोन करने वाला व्यक्ति स्क्रिप्ट निष्पादित करेगा), इसलिए आपको अपनी स्क्रिप्ट को उस परिप्रेक्ष्य से डिज़ाइन करने की आवश्यकता है। साथ ही git clone
पर --no-checkout
विकल्प जोड़कर इस हुक को निष्पादित किए बिना भंडार को क्लोन करना संभव है।
एक सरल और भरोसेमंद दृष्टिकोण सर्वर को एक छोटी सी विश्वसनीय वेब सेवा चलाने के लिए होगा जो आपका हुक curl
या कुछ समान सुविधा के साथ कॉल कर सकता है। उदाहरण के लिए:
#!/usr/bin/env python
import socket, sys, urllib, pycurl
service_url = "https://my.server.dns/service.php"
data = urllib.urlencode({
'prev': sys.argv[1],
'new': sys.argv[2],
'branch': sys.argv[3],
'host': socket.gethostname()
})
c = pycurl.Curl()
c.setopt(pycurl.URL, service_url)
c.setopt(pycurl.POSTFIELDS, data)
c.perform()
http://www.kernel.org/pub/software/scm/git/docs/githooks.html देखें।
स्रोत
2012-08-27 14:30:57