2015-01-17 7 views
6

नेट पर बहुत सारी खोजों का नतीजा यह है कि pre-checkout गिट में हुक अभी तक लागू नहीं किया गया है। कारण हो सकता है:गिट/बिटबकेट में 'प्री-चेकआउट' हुक कैसे प्राप्त करें?

  • कोई व्यावहारिक उपयोग नहीं है। मेरे पास एक केस है
  • इसे किसी भी अन्य माध्यम से हासिल किया जा सकता है। कृपया मुझे बताएं कि कैसे?
  • इसे लागू करना बहुत मुश्किल है। मुझे नहीं लगता कि यह एक वैध कारण

यहाँ मेरी समस्या यह है है है:

मैं डेटाबेस बैकअप प्रत्येक शाखा के लिए अलग बनाए रखने के लिए pre-commit, post-merge & post-checkout हुक लागू किया है।

परिदृश्य: अब जब मैं डेटाबेस का बैकअप लेता हूं तो pre-commit हुक का उपयोग कर फ़ाइल में सहेजा जाता है। और जब मैं शाखा को चेकआउट करता हूं या विलय होता है तो फ़ाइल में संग्रहीत डेटाबेस post-merge & post-checkout हुक का उपयोग करके पुनर्स्थापित किया जाता है। अब स्थिति यह है कि अगर कोई प्रतिबद्धता और चेकआउट के बाद डेटाबेस में परिवर्तन करता है, तो परिवर्तन खो जाते हैं, क्योंकि डेटाबेस का बैक अप नहीं लिया गया था। चेकआउट सफल हुआ क्योंकि फ़ाइल संरचना में कोई बदलाव नहीं है।

तो इस मामले में मैं उपरोक्त परिदृश्य में डेटाबेस का बैक अप लेने के कार्य को संभालने के लिए pre-checkout हुक चाहता हूं।

उत्तर

0

मुझे कारण मिला कि इसे लागू क्यों नहीं किया गया था। मेरी स्थिति में मैं डेटाबेस बैकअप करता हूं और इसे एक फ़ाइल में संग्रहीत करता हूं, जो प्रत्येक बार चेक-आउट विफल हो जाएगा। तो यह इस कार्यक्षमता को लागू करने के लिए अव्यवहारिक होगा।

0

आप एक स्क्रिप्ट लिख सकते हैं जो आपके बैकअप को चेकआउट करता है। फिर एक खोल उपनाम बनाएं ताकि जब आप git checkout टाइप करते हैं तो यह उस स्क्रिप्ट को चलाता है।

+0

क्या आप मुझे एक उदाहरण दे सकते हैं? – asachanfbd

0

प्री-चेकआउट उपयोग केस: gulp watch:css कार्य द्वारा उत्पन्न गैर-संस्करण वाली स्थानीय फ़ाइलों को हटाएं ताकि वे चेकआउट के बाद अधिलेखित हो जाएं और गल्प द्वारा पुनर्निर्मित किया जा सके।

इसके बजाय, मैं सिर्फ एक शैल स्क्रिप्ट लिखने जा रहा हूं जो रेपो रूट प्राप्त करता है और फिर मिली-जेनरेट की गई फ़ाइलों की सूची में से किसी एक को हटा देता है।

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