2008-10-10 12 views
30

this question पूछने के बाद मुझे सलाह दी गई थी कि उपनिवेश में द्विआधारी में जांच न करें। मेरा सवाल यह है कि मैं तीसरे पक्ष के डीएल के साथ क्या करता हूं जो कि बिन फ़ोल्डर में होना आवश्यक है? मुझे एक कार्यशील प्रतिलिपि चेकआउट करने में सक्षम होना चाहिए और यह सभी डीएलएस, आदि के साथ वेबसाइट के रूप में चलाना चाहिए।एसवीएन और बाइनरी

उत्तर

54

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

यदि डीएलएल तीसरे पक्ष के डीएलएल हैं जिनके लिए आपके पास स्रोत कोड नहीं है तो मैं उन्हें उपversण में संग्रहित करूंगा। आपको सब कुछ उस सबवर्सन में रखना चाहिए जो एप्लिकेशन को फिर से बनाने के लिए आवश्यक है। इसका मतलब है कि आपका स्रोत कोड और तृतीय पक्ष पुस्तकालय या कार्यक्रम।

+0

हाय, मैं आपके उत्तर से सहमत हूं। हालांकि, मैंने * के लिए वैश्विक अनदेखा निर्धारित किए हैं। डीएलएस और अब मैं विजुअल स्टूडियो से एसवीएन तक नई बाइनरी नहीं कर सकता! कोई विचार मैं इसे मौजूदा प्रोजेक्ट में कैसे आयात कर सकता हूं? – Krunal

11

मैं हमेशा तीसरे पक्ष के डीएलएल (एक 'lib' फ़ोल्डर में) में जांच करता हूं ताकि एप्लिकेशन ताज़ा चेकआउट से बना और चला सके। मुझे लगता है कि "बाइनरी में चेक न करें" नियम आपके द्वारा चेक किए गए स्रोत कोड द्वारा उत्पन्न बाइनरी पर लागू होता है।

1

मैं परियोजना में एक डीएलएल निर्देशिका में किसी भी आवश्यक DLLs शामिल करता हूं और उन्हें वहां से संदर्भित करता हूं (प्रतिलिपि स्थानीय से)। फिर उन्हें या तो एक ही भंडार/फ़ोल्डर में शामिल किया जा सकता है, या एक दूरस्थ स्थान से एक svn-external का उपयोग करने में लाया जा सकता है (यदि वे कई परियोजनाओं में साझा किए जाते हैं)।

5

बेन की तरह। मैं द्विआधारी नहीं डालता जो अक्सर स्रोत नियंत्रण में परिवर्तित होने जा रहे हैं। लेकिन तीसरे भाग डीएलएस, या वे मेरे svn पर एक lib फ़ोल्डर में भी खत्म हो गया।

5

सिर्फ इसलिए कि फ़ाइल बाइनरी है, आपको नहीं चाहिए कि आपको इसे जांचना नहीं चाहिए। चेतावनी व्युत्पन्न वस्तुओं में भंडार में जांच के खिलाफ होना चाहिए। आपको हमेशा स्रोतों से अपनी सभी व्युत्पन्न वस्तुओं को फिर से बनाने में सक्षम होना चाहिए। इसका मतलब यह हो सकता है कि आपको भंडार में तीसरे पक्ष की बाइनरी की आवश्यकता है।

0

वास्तव में SVN भंडार करता है एक बहुत अधिक सीवीएस से कुशल binaries, अधिक जानकारी के लिए SVN-FAQ

1

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

यह अपवाद होगा यदि आप स्थापना छवियों को एसवीएन कर रहे हैं। हम इसे यहां करते हैं, लेकिन रिपोजिटरी के एक अलग सेट में जो हमारे उत्पादन लोग उपयोग करते हैं (प्रोग्रामर नहीं करते हैं)।

5

दिशानिर्देश सरल हैं:

  • सब कुछ है कि समाधान के पुनर्निर्माण के लिए आवश्यक है, *
  • कोई भी चीज जो निर्माण प्रक्रिया में उत्पन्न होता है में जाँच की जानी चाहिए -
बाहर रहने के लिए है

-
* कार्यक्रम, उपकरण, सर्विस पैक इस नियम के लिए एक स्पष्ट अपवाद हैं। लेकिन उन्हें एक फाइल में सूचीबद्ध होना होगा जो संस्करणित है।

1

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

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