2011-12-21 25 views
5

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

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

परियोजना से अलग मेरी लाइब्रेरी को सहेजने का सबसे अच्छा अभ्यास क्या है? प्रत्येक प्रोजेक्ट में /लाइब्रेरी/ निर्देशिका है जिसमें सभी प्रकार की पुस्तकालय हैं। तो क्या पालन करने के लिए मेरे सबसे अच्छे अभ्यास:

  • मैं /पुस्तकालय/रूपरेखा/ निर्देशिका जोड़ सकते हैं और परियोजना SVN में उपेक्षा पर सेट और फिर उस निर्देशिका में पुस्तकालय चेकआउट (यह भी संभव है हो सकता है?)
    • प्रो: प्रत्येक परियोजना का अपना ढांचा होता है, अगर ढांचा बदल सकता है तो यह परियोजना में किसी भी कोड को तोड़ नहीं देगा।
    • कॉन: यदि मुझे 100 परियोजनाएं पसंद हैं और उन्हें सभी को एक आवश्यक अपडेट (सुरक्षा के अनुसार) की आवश्यकता है, तो मुझे उन सभी को मैन्युअल रूप से अपडेट करना होगा।
  • मैं भी सर्वर पर कहीं पुस्तकालय चेकआउट और परियोजना SVN में यह अनदेखी के बाद /पुस्तकालय/रूपरेखा/ निर्देशिका सिमलिंक सकता है।
    • प्रो: एक अपडेट एक आवश्यक अद्यतन के मामले में सभी परियोजनाओं को ठीक करेगा।
    • कोन: जैसा कि कहा से ऊपर: एक अद्यतन को ठीक/सभी परियोजनाओं बदल जाएगा ...
    • कोन: परियोजना को अन्य सर्वर पर सेटअप की जरूरत है क्या होगा अगर (मेरा नहीं ...)

किसी के पास कोई विचार है?

उत्तर

3

मैं आमतौर पर svn externals का उपयोग करता हूं। इसलिए मैं प्रोजेक्ट में लाइब्रेरी डीआईआर बनाउंगा और फिर अलग पुस्तकालयों और घटकों के लिए बाहरी परिभाषाओं को जोड़ूंगा।

यह कई परियोजनाओं को अद्यतन करने के आपके प्रश्न को अनिवार्य रूप से संबोधित नहीं करता है, लेकिन आईएमओ एक अलग मुद्दा है जिसे स्वचालन के माध्यम से संभाला जा सकता है और जब हम संगठन/संस्करण/विकास की बात कर रहे हों तो खेल में नहीं आते हैं।

+0

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

+2

डिफ़ॉल्ट रूप से यह बाहरी अपडेट करेगा। तो आपकी विकास पद्धति और आपके पास बाहरी परियोजनाओं के आयोजन के आधार पर आप चीजों को एक विशिष्ट टैग, या एक शाखा जो बीसी को बनाए रखने की गारंटी देते हैं, को पिन करना चाहते हैं। आप अपडेट कमांड के साथ हमेशा '--ignore-externals' ध्वज का उपयोग कर सकते हैं, जिसे नवीनतम संस्करण नहीं मिलेगा। – prodigitalson

1

वास्तव में मैं कुछ समय पहले इसी स्थिति में था।

मैं एक .htaccess फ़ाइल के माध्यम से इसे हल (मैं वेबसर्वर के रूप में अपाचे -2 का उपयोग [1]), आप तरह

php_value include_path /absolute/path/to/libraries:/absolute/path/to/my/project:/lib/3rd_party 

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

[1] http://httpd.apache.org/docs/2.0/howto/htaccess.html

+0

मुझे आपका समाधान पता था और मैंने कभी-कभी इसे 'set_include_dir' फ़ंक्शन का उपयोग करके PHP की सीमाओं के भीतर उपयोग किया था, लेकिन मेरी मुख्य चिंता एकाधिक सर्वर है। यदि आपके पास 5 अलग-अलग सर्वर हैं, तो क्या आपको सभी सर्वरों पर चेकआउट की आवश्यकता है? उस स्थिति में आपको अभी भी किसी भी पुस्तकालय अद्यतन पर हर सर्वर को अद्यतन करना होगा, यह सभी परियोजनाओं को अद्यतन करने से बहुत कम अद्यतन है ... – Niels