2012-07-30 18 views
7

मैं अपने गिट भंडार के भीतर क्लोनिंग गतिविधि की निगरानी करने के लिए देख रहा हूं, हालांकि मुझे यह कुछ भी नहीं मिला है जो यह दिखाता है कि यह कैसे सेट अप करें या इस जानकारी को कैसे प्राप्त करें।गिट रिपोजिटरी क्लोनिंग लॉगिंग

क्या यह भी संभव है? यदि ऐसा है तो यह कैसे स्थापित किया जा सकता है और आप लॉगिंग जानकारी को कैसे प्राप्त कर सकते हैं?

उत्तर

0

मुझे नहीं लगता कि कोई हुक या कुछ ऐसा है जो क्लोन पर रिपोजिटरी के सर्वर पक्ष में चलता है। गिट शायद निर्दिष्ट प्रोटोकॉल (एसएसएच, http, ...) का उपयोग करता है और उचित फाइलें लाता है। आप किसी भी तरह से उस गतिविधि की निगरानी करने की कोशिश कर सकते हैं।

2

आप अपने सर्वर पर डेटाबेस या फ़ाइल को अद्यतन करने के लिए 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 देखें।

0

मैं एक ही प्रश्न पोस्ट करने जा रहा था लेकिन इसे एक ढूंढ गया। कॉल को लॉग इन करने के लिए git-upload-pack कमांड को लपेटना बेहतर है। यह केवल एसएसएच पर काम करेगा हालांकि देखें: pre-fetch hook functionality in git

लेकिन केवल रूट ही ऐसा करने में सक्षम होगा। यह मेरे लिए काम नहीं करता है, लेकिन शायद यह दूसरों के लिए एक समाधान है।

आप हमेशा गिटोलाइट (http://sitaramc.github.com/gitolite/master-toc.html) जैसे पहुंच को नियंत्रित करने के लिए "गिट सर्वर" स्थापित कर सकते हैं। या तो आप इसे सीधे लॉग कर सकते हैं या आप इसकी कार्यक्षमता बढ़ा सकते हैं।

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