2008-11-24 16 views
8

मैं एक ऐसे प्रोजेक्ट में काम कर रहा हूं जहां कॉन्फ़िगरेशन फाइलें हों, प्रत्येक वातावरण के लिए नंबर में से एक जहां एप्लिकेशन तैनात किया जाएगा।सबवर्सन हुक

जब कोई डेवलपर इन फ़ाइलों में से किसी एक को संशोधित करता है, तो डेवलपर को व्यक्तिगत रूप से फ़ाइल में चेक-इन करने की अनुमति नहीं दी जानी चाहिए, लेकिन सभी फ़ाइलों को एक साथ जांचें या कम से कम डेवलपर को सूचित किया जाना चाहिए कि इसे करने की आवश्यकता है।

हम इसे कैसे प्राप्त कर सकते हैं?

उत्तर

12

मुझे लगता है कि आप ऐसा करने के लिए प्री-प्रतिबद्ध हुक लिख सकते हैं - बस फाइलों की एक सूची है जहां कोई प्रतिबद्ध है तो उन्हें सभी प्रतिबद्ध होना चाहिए।

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

आपके भंडार में 'हुक' निर्देशिका में बैचफाइल/शेल-स्क्रिप्ट हुक उदाहरण होंगे, लेकिन मैंने उन्हें अतीत में सी # में भी लिखा है।

यह http://wordaligned.org/articles/a-subversion-pre-commit-hook प्री-प्रतिबद्ध हुक के लिए एक सामान्य सामान्य परिचय की तरह दिखता है।

1

नहीं, लेनदेन के बारे में जानकारी प्राप्त करने के लिए आपकी स्क्रिप्ट केवल विवरण के बारे में svn पूछ सकती है। और svn उस जानकारी को प्रदान कर सकता है, इसे एक ही सर्वर पर नहीं होना चाहिए।

क्या वह मतलब है कि यह चलता है जब तोड़फोड़ अपने हुक निष्पादित करता है w/एक वातावरण ओ और SVN सर्वर पर ही द्वारा। आपके svn हुक को किसी बाहरी संसाधन को svn सर्वर खाते द्वारा एक्सेस करने की आवश्यकता हो सकती है। जो आप पूछ रहे हैं उससे यह कोई समस्या नहीं हो सकती है, मान लीजिए कि आपको किसी प्रकार की बाहरी डेटाबेस पहुंच की आवश्यकता नहीं है या आपके लिए लेनदेन की तुलना करने की आवश्यकता नहीं है।

आपकी सबसे अच्छी शर्त उदाहरण के लिए कुछ उपवर्तन हुक that come with svn को देखने के लिए है। SVN Hook Arguments सूचीबद्ध करता है कि प्रत्येक हुक को कैसे बुलाया जाता है।