2010-07-03 14 views
7

मेरे पास कई परियोजनाएं हैं जो पुन: प्रयोज्य पुस्तकालयों का निर्माण करती हैं। ये सभी परियोजनाएं स्रोत नियंत्रण में हैं।स्रोत नियंत्रित परियोजनाओं में स्रोत नियंत्रित पुस्तकालयों का उपयोग

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

स्रोत नियंत्रण के तहत घटकों का उपयोग करते समय सबसे अच्छा अभ्यास क्या है? क्या मुझे "मुख्य परियोजना" स्रोत नियंत्रण में "लाइब्रेरी प्रोजेक्ट" शामिल करना चाहिए? क्या इससे समस्याएं पैदा होंगी?

एनबी: पुस्तकालयों काफी कुछ संकलक निर्देशों ले इसलिए इसकी लगभग असंभव सिर्फ एक स्थिर संस्करण और उस के लिए लिंक संकलित करने के लिए। इसके अलावा मैं अभी भी उन्हें समानांतर में विकसित कर रहा हूं।

उत्तर

5

है आप निर्भरता के दो मुख्य प्रकार है:

  • स्रोत निर्भरता (आप शामिल करना, अपनी परियोजना के स्रोत के भीतर, स्रोत एक अन्य परियोजना से की जरूरत है) ,
  • द्विआधारी निर्भरता (आप फ़ाइलों का एक पैकेज को शामिल करने के, लोगों की तरह एक साझा लाइब्रेरी में पाया की जरूरत है)।

हैं, जब आप कहते हैं कि "मैं एक परियोजना में इन पुस्तकालयों का उपयोग करें", क्या आपका मतलब है आप अपने प्रोजेक्ट को संकलित करने के लिए आदेश में बाइनरी जरूरत है, तो आप कहा संग्रहीत कर सकती है एक बाहरी भंडार में बाइनरी (यानी नहीं एक (डी) मर्क्युरियल तरह VCS, लेकिन एक artifact repository like Nexus)

लेकिन अगर आप मतलब है आप, स्रोतों में शामिल करने की जरूरत है क्योंकि आप भी उन्हें का उपयोग करते समय अपनी परियोजना विकसित करने के लिए उन पुस्तकालयों के लिए कुछ विकास ने बना रहे हैं, तो Mercurial subrepos एक बेहतर फिट हैं।

0

मेरे अपने अनुभव में, पुस्तकालयों है कि आप एक साथ लिख रहे हैं तेजी से निर्यात नक्शे का उपयोग क्लाइंट प्रोग्राम करने के लिए अपने इंटरफेस के कई संस्करण प्रदान करने के लिए से सुधार हुआ है के साथ संगतता बनाए रखने। सबसे अच्छा गाइड मैं के बारे में पता अलरिक ड्रेपपर के http://people.redhat.com/drepper/dsohowto.pdf

0

यदि पुस्तकालय आपके स्रोत नियंत्रण में हैं, तो जीवन आसान होना चाहिए। मैं जो करना चाहता हूं वह वही है जैसा मैं तीसरे पक्ष के पुस्तकालयों के विभिन्न संस्करणों के लिए करता हूं: विभिन्न संस्करणों के लिए अलग-अलग फ़ोल्डर हैं।

तीसरे पक्ष के पुस्तकालय फ़ोल्डर संरचना इस तरह दिखता है:

- General 
    - Delphi 
    - Components 
     - LibX 
     - LibX 9.2.1.3890 
     - LibX 10.1.0.7151 
     - LibY 
     - LibY 3.6 
     - LibY 5.1 
    - Plugins 

हर परियोजना यह प्रत्येक पुस्तकालय के विशिष्ट संस्करणों पर निर्भरता को परिभाषित करता है। किसी प्रोजेक्ट के पुराने संस्करण पर वापस लौटना, इस प्रकार निर्भरता को लाइब्रेरी (ies) के पुराने संस्करणों में भी बदल देता है।

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

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