2011-06-27 15 views
6

मैंने PHP में एक व्यक्तिगत प्रकाश ढांचा बनाया है जो ढांचे के लिए मेरी आवश्यकताओं से मेल खाता है। मैं स्विफ्टमेलर, ट्विग, एसेटिक, फेसबुक PHP एपीआई जैसे विभिन्न तृतीय पक्ष पुस्तकालयों का उपयोग कर रहा हूं ...आप अपनी परियोजना में तीसरे व्यक्ति गिट भंडार कैसे प्रबंधित करते हैं? (उदा। ट्विग/एसेटिक/..)

आप तृतीय पक्ष पुस्तकालयों से इन स्रोत कोडों का प्रबंधन कैसे करते हैं? क्या आप इसे अपनी प्रोजेक्ट में एक सबमिशन के रूप में जोड़ते हैं, और नवीनतम संस्करण प्राप्त करने के लिए बस एक पुल करते हैं? या क्या आप बस अपनी परियोजना डीआईआर में कोड कॉपी करते हैं और अपडेट स्वयं करते हैं?

अधिकांश कोड खजाने इस तरह संरचित कर रहे: submodule के रूप में हमारे विक्रेता dirs

  • डॉक्स
  • src
  • परीक्षण
मेरी ढांचा निर्देशिका यह ऐसा दिखाई देगा में

तो, और रिमोट प्रोजेक्ट से:

  • डॉक्स
  • src
    • विक्रेता
      • Assetic (दूरस्थ रेपो के क्लोन)
      • src
      • ...
  • परीक्षण

इस है जाने के लिए रास्ता? या आप ऐसा करने का सुझाव कैसे देते हैं? कैपिस्ट्रानो तैनाती के दौरान, सभी सबमिशन रिपॉजिटरी दूरस्थ सर्वर से खींचे जाएंगे।

संपादित करें: मुझे कहना होगा कि मैं ढांचे का उपयोग अन्य परियोजनाओं में सबमिशन के रूप में करता हूं। तो ढांचा एक परियोजना में एक सबमिशन है, और ढांचे में भी इसमें सबमिड्यूल हैं ..

धन्यवाद!

उत्तर

0

मैं प्रत्येक परियोजना सेपरेटली का प्रबंधन करता हूं। प्रत्येक प्रोजेक्ट फ़ोल्डर में सही निर्माण के लिए सभी फाइलें हो सकती हैं - इसलिए सभी संदर्भित फ़ाइलों को "रेफरी" निर्देशिका में शामिल किया गया है। इस मामले में आसान निर्माण है: "src, & बिल्ड" निर्देशिका का नवीनतम संस्करण प्राप्त करें, बिल्ड स्क्रिप्ट चलाएं। आउटपुट "बिन" निर्देशिका में है।

"रेफरी" फ़ोल्डर डिस्क आकार का उपभोग कर रहा है, लेकिन यह सुधार संस्करणों (और शाखाओं) के साथ क्रॉस-प्रोजेक्ट संदर्भों को प्रबंधित करने से कहीं अधिक सरल है।

  • 3rdParty-परियोजना-ए
  • 3rdParty-परियोजना-बी
    • src // स्रोत कोड & संसाधनों
    • refs // सही संस्करण में संदर्भित बाइनरी
    • निर्माण // स्क्रिप्ट
    • निर्माण
    • बिन // निर्मित बाइनरी & संबंधित फाइलें
    • डिप्लो के लिए उपयोग की जाने वाली // फ़ाइलों को तैनात करें y (setup.exe, setup.msi, आदि ...)
    • ... अन्य फ़ोल्डर ...
  • MyProject-ए
  • MyProject-बी
    • src
    • refs 3rdParty-परियोजना-बी
    • MyProject-ए से
      • 3rdParty-परियोजना-बी // वहाँ संदर्भित फ़ाइलों // वहाँ MyProject-ए
      • से फाइल संदर्भित
    • निर्माण
    • बिन
    • तैनात
1

मैं आम तौर पर एक vendor फ़ोल्डर, या तो उच्च-स्तरीय या src या lib कि submodules धारण के तहत उपयोग करें, और --recurse-submodules विकल्प का उपयोग खींचते समय, और --recursivegit submodule update और git submodule status के साथ। I सोचें कैपिस्ट्रानो इस उपयोग के मामले को आसानी से संभाल सकता है, लेकिन मैं निश्चित रूप से इसके बारे में जानने के लिए पर्याप्त परिचित नहीं हूं।