2011-02-13 11 views
9

मैं हाल ही में शोध कर रहा हूं कि मैं एक परियोजना या एकाधिक परियोजनाओं में स्रोत फ़ाइलों का प्रबंधन कैसे कर सकता हूं। मैंने पढ़ा है कि एक्सकोड में svn का उपयोग करने के लिए अंतर्निहित समर्थन है, और यह भी गिट का समर्थन करेगा, जिनमें से दोनों मुझे बहुत उपयोगी पाया गया है।एक्सकोड वरीयताओं में "स्रोत वृक्ष" क्या है और मैं इसके साथ क्या कर सकता हूं?

एक बात जिसे मैं स्पष्ट रूप से समझ नहीं पाया, एक्सकोड परियोजना प्रबंधन मार्गदर्शिका में वर्णित स्रोत पेड़ के बारे में है। यहां मेरा सिद्धांत है, लेकिन जैसा कि मैं इसे कहीं से भी सत्यापित नहीं कर सका (जहां तक ​​मैं कह सकता हूं), मैं वास्तव में चाहूंगा कि कोई कह सकता है कि मैं क्या खो रहा हूं, यदि कोई हो।

  • एक्सकोड वरीयताओं में एक स्रोत वृक्ष एक स्रोत पेड़ के a root की तरह है, जो मेरे स्थानीय फ़ाइल सिस्टम में एक फ़ोल्डर है।
  • मैं अपनी किसी भी एक्सकोड परियोजनाओं में किसी भी फाइल का उपयोग कर सकता हूं, भले ही फाइल प्रोजेक्ट फ़ोल्डरों में न हों, अगर मैं अपने स्रोत पेड़ों में से किसी एक से संबंधित फाइलों का स्थान निर्दिष्ट कर सकता हूं।
  • अब किसी के पास एक ही प्रोजेक्ट फ़ोल्डर है जो मेरे साथ सिंक्रनाइज़ किया गया है। उसके पास प्रोजेक्ट फ़ोल्डर में सभी फाइलें हैं, लेकिन स्रोत पेड़ के सापेक्ष स्थान द्वारा संदर्भित फ़ाइलों को प्रोजेक्ट फ़ोल्डर से बाहर किया जा सकता है।
  • लेकिन उसके पास एक स्रोत पेड़ है, जिसमें Setting Name मेरा है, (लेकिन बिल्कुल स्थानीय फाइल सिस्टम में एक अलग फ़ोल्डर में), और यदि उसके पास एक ही सापेक्ष स्थान में फ़ाइल है, तो उसका एक्सकोड फ़ाइल तक पहुंच सकता है बिना किसी समस्या के।

तो यह सही है, और हम स्रोत पेड़ों का उपयोग करते हैं क्योंकि यह हमें परियोजना फ़ोल्डर के बाहर फ़ाइलों के साथ सहयोग करने में सक्षम बनाता है?

और यहां तक ​​कि यदि प्रोजेक्ट फ़ोल्डर के बाहर की फ़ाइलों को परियोजना फ़ोल्डर के लिए एक सापेक्ष पथ (स्रोत स्रोत पेड़ पर नहीं) संदर्भित किया जाता है, तो यदि इन फ़ाइलों को सभी एसवीएन द्वारा प्रबंधित किया जाता है, तो वे उसी सापेक्ष स्थान पर मौजूद होते हैं हर किसी के वातावरण में प्रोजेक्ट फ़ोल्डर, तो मुझे स्रोत पेड़ की आवश्यकता नहीं होगी, है ना?

उत्तर

4

मैं कभी नहीं लगता है कि मैं Xcode के एक विशेषज्ञ हूँ, लेकिन यह अपने प्रश्न थोड़ी देर के लिए उत्तर नहीं दिया गया लगता है, इसलिए शायद यह है कि मैं क्या कह सकते हैं टिप्पणी के लायक है:

आप क्या वर्णित इसके बारे में काफी है । सोच एक ऑपरेटिंग सिस्टम के एक पर्यावरण चर के रूप में है। आमतौर पर Autotools द्वारा बनाई गई एक बिल्ड सिस्टम में, उदाहरण के लिए, फ़ाइलों को $PROJECT_HOME/src/common/error.cpp जैसे सापेक्ष पथों द्वारा संदर्भित किया जाता है। इससे कोई फर्क नहीं पड़ता कि $PROJECT_HOME प्रत्येक उपयोगकर्ता की स्थानीय फ़ाइल सिस्टम में है, जब तक कि उपयोगकर्ता अपने $PROJECT_HOME निर्देशिका में अपने सापेक्ष पथों तक पहुंच योग्य हो।

और हां, आपको स्रोत पेड़ का उपयोग करने की आवश्यकता नहीं है यदि किसी परियोजना के लिए उपयोग किए गए पूरे फ़ोल्डर पदानुक्रम को परियोजना घर के सापेक्ष पथों से संदर्भित किया जाता है और किसी भी तरह यह निश्चित है कि सभी के पास एक ही स्थान पर एक ही फाइल है (उदाहरण के लिए, क्योंकि एक संस्करण नियंत्रण भंडार में आपके द्वारा एक खंड में प्रत्येक फाइल शामिल होती है)।

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

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

+0

यह एक अच्छा अभ्यास प्रतीत होता है। मैं सोच रहा था कि स्रोत पेड़ की सामग्री के बारे में कुछ और है, लेकिन मुझे लगता है कि यह है। उत्तर के लिए धन्यवाद (और आपने मेरे प्रश्न का दो बार जवाब दिया!)। – realstuff02

+0

मुझे इसका सही तरीका नहीं लगता है। अगर हम $ SAJECT_HOME के ​​तहत सभी सापेक्ष स्रोत कोड रख सकते हैं या एसवीएन/जीआईटी में मॉड्यूल बना सकते हैं, तो इसका बेहतर तरीका है। उपयोगकर्ताओं में से कोई भी अपने एक्सकोड व्यक्ति को स्थापित करना नहीं है। बस कोड चेकआउट करें और इसे चलाना चाहिए। – Satyam

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

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