2009-10-02 10 views
6

बदल रहा है हमारा वीबी 6 लड़का अंतिम आरआईएफ (बल में कमी) का हिस्सा था। उन्होंने जो काम किया वह मेरे और दूसरे डेवलपर के बीच बांटा गया है। हम अक्सर दोनों एक ही समय में परियोजनाओं में बदलाव कर रहे हैं। सीवीएस के साथ यह कोई समस्या नहीं है क्योंकि हम विभिन्न क्षेत्रों में काम कर रहे हैं। हालांकि वीबी 6 रेफरेंस सेक्शन को संशोधित करता है और जब भी हम किसी प्रोजेक्ट को छूते हैं तो पथ बदलते हैं। चूंकि हमारे पास आउट स्रोत पेड़ के लिए सटीक पथ सेटअप नहीं है, इसलिए हम हर समय vbp फ़ाइल पर विलय विवादों में भाग लेते हैं।वीबी 6 .vbp फ़ाइल संदर्भों से निपटने के लिए कैसे

क्या हमारे सेटअप को बदलने की स्पष्ट विधि के अलावा अन्य कोई रास्ता है इसलिए हमारे पास एक ही निर्देशिका संरचनाएं हैं?

+0

सी-पाउंड गुरु ने अपने उत्तर में कहा, केवल जब आपको वास्तव में करना है, तो केवल .vbp फ़ाइल में जांचें, जो अक्सर नहीं होता है। इसके अलावा, मैंने थोड़ी देर पहले एक सिमर प्रश्न पूछा: http: // stackoverflow।com/प्रश्न/167580/is-there-a-way-to-prevent-the-vb6-compiler-from-shuffling-the-content-of-files – raven

उत्तर

5

मैं दो बातें सुझाव है: जब तक आप इस परियोजना में एक फ़ाइल जोड़ने

  1. .vbp प्रतिबद्ध है।
  2. .vbp को केवल पढ़ने के लिए चिह्नित करें और इसे अपने रेपो में जांचें। जब उपयोगकर्ता इसे चेक आउट करते हैं, तो इसे अभी भी केवल पढ़ने के लिए होना चाहिए जो सहेजे जाने से संदर्भ पथ (और फ़ाइल की यादृच्छिक पुनरावृत्ति) में परिवर्तनों को रोक देगा। जब आपको प्रोजेक्ट में कोई बदलाव करना पड़ता है - फ़ाइल को पढ़ने-लिखने के लिए, परिवर्तन को सहेजें और फिर इसे करने से पहले इसे केवल पढ़ने के लिए तैयार करें।
+1

मैं यह सुनिश्चित करने के लिए एक तीसरी चीज जोड़ूंगा, सभी आवश्यक परिवर्तनों को सुनिश्चित करने के लिए वीबीपी की जांच की जा रही है। अपनी रिलीज को मशीन से स्थापित किया गया है जिसमें स्थापित घटकों के ज्ञात संस्करण हैं, और एक स्वच्छ निर्देशिका से शुरू करें (यह सुनिश्चित करने के लिए कि सभी आवश्यक फाइलें संस्करण नियंत्रण में हैं)। ऐसा करने का सबसे अच्छा तरीका स्वचालित निर्माण करना है। – MarkJ

3

आपके संस्करण नियंत्रण प्रणाली के आधार पर, इस समस्या को स्वचालित करना संभव है। सबवर्सन और मर्कुरियल समर्थन हुक दोनों - स्क्रिप्ट जो कुछ घटनाओं से ट्रिगर होती हैं, जैसे चेक आउट, अपडेट या प्रतिबद्ध। हम एक काफी सरल स्क्रिप्ट प्रतिबद्ध पर ट्रिगर किया गया था ने लिखा है: यह अगर वहाँ के लिए प्रतिबद्ध पैकेज में एक .vbp था देखने के लिए देखा है, और अगर वहाँ था, एक "सामान्य" दिनचर्या कि

  1. सभी .cls डाल भाग गया .vbp के शीर्ष पर /.bas/.frm फ़ाइलें, वर्णमाला क्रम में
  2. वर्णमाला क्रम
  3. में संदर्भ खंड डाल कम मामलों संदर्भ रास्तों

फ़ाइल के बाकी छोड़ दिया है अकेले, क्योंकि यह केवल पहले तीन खंड हैं जो वीबी के बारे में गड़बड़ करने में प्रसन्न हैं।

नतीजतन, अधिकांश समय जब आप प्रतिबद्ध करते हैं, और .vbp में कोई वास्तविक परिवर्तन नहीं किया है, तो हुक स्क्रिप्ट आपकी .vbp फ़ाइल को एक कैनोलिक, आदेशित, स्थिति (एक वापसी की तरह) में पुनर्स्थापित करती है, जिसमें इसे प्रतिबद्धता से हटाने का प्रभाव क्योंकि यह अब नहीं बदला गया है।

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

हमने जावास्क्रिप्ट में हमारी स्क्रिप्ट लिखी और विंडोज स्क्रिप्ट होस्ट का उपयोग करके इसे निष्पादित किया, कम से कम विंडोज बॉक्स के लिए, यह पर्ल/पायथन जैसे दुभाषिया पर निर्भरता को हटा देता है।

इस स्क्रिप्ट को नई वीबी परियोजनाओं में हुक अप करना 30 सेकंड का काम है। अन्य मैन्युअल दृष्टिकोणों पर लाभ यह है कि आपने वीबीपी फ़ाइल से निपटने के लिए कोई सचेत प्रयास नहीं किया है। बस इसे सब कुछ के साथ प्रतिबद्ध करें और लिपि बाकी की देखभाल करता है।

+0

मुझे जावास्क्रिप्ट के कुछ भी नहीं पता; और पायथन में लिपि "हुकिंग" मेरे लिए 30 सेकंड का काम नहीं होगा। क्या आप किसी भी मौके से, स्क्रिप्ट को मेरे साथ साझा कर सकते हैं/इसे अपने उत्तर पर रख सकते हैं? –

+0

क्षमा करें, मैं कोड साझा नहीं कर सकता। "स्क्रिप्ट को हुक अप करके" मेरा मतलब था कि स्क्रिप्ट को आपके रिपोजिटरी के प्रीकॉमिट इवेंट में हुक के रूप में जोड़ना .hgrc। इस प्रकार: '[हुक]' 'precommit.normalise =" अपनी पसंद की भाषा में अपनी स्क्रिप के लिए पथ "' मैं स्क्रिप्ट लिखने का जिक्र नहीं कर रहा था। यह निश्चित रूप से 30 सेकंड से अधिक समय लेगा, लेकिन मुझे लगता है कि यह जो कुछ भी करता है उसका विवरण सिर्फ आपको आवश्यक सभी spec के बारे में है। – perlyking

+0

मैं समझता हूं। मैंने पहले से ही इस तरह के सामान्य दिनचर्या बना दिया है। और यह 30 सेकंड से 3 महीने की तरह अधिक ले लिया। लिखना ;-)। अगर किसी को कभी इसकी आवश्यकता होगी तो मैं इसे कुछ खुले लाइसेंस के तहत जारी करने के लिए तैयार हूं - बस पूछो। –