2008-11-26 14 views
6

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

प्रोजेक्ट बी में किए गए मोड को ओवरराइट किए बिना प्रोजेक्ट ए में प्रोजेक्ट बी में प्रोजेक्ट बी में परिवर्तन को शामिल करने और प्रोजेक्ट बी में परिवर्तनों को शामिल करने का सबसे अच्छा तरीका क्या है?


यह Google Code पर अपने मुख्य रेपो और फिर हमारे अपने आंतरिक रेपो में कंपनी संस्करण के साथ दो संस्थाओं में विभाजित किया जा रहा है। मेरा सवाल सबकुछ शांत रहा है क्योंकि रिलीज से रिलीज होने के लिए अपग्रेड करने का समय आता है लेकिन कस्टम संशोधनों को ध्यान में रखता है।

उत्तर

3

पहले उल्लिखित The Subversion Book discussing "vendor branches" में सेक्शन देखें। यह एक बाहरी उपप्रोजेक्ट से निपटने का तरीका बताता है ताकि जब बाहरी प्रोजेक्ट अपडेट हो और आपके स्थानीय संशोधनों में विलय हो तो आप दोनों परिवर्तनों में विलय कर सकते हैं।

यदि आप अपने प्रोजेक्ट के सार्वजनिक संस्करण (Google Code पर होस्ट किए गए) के सार्वजनिक संस्करण का इलाज करते हैं तो आपके दृष्टिकोण को अच्छी तरह से काम करना चाहिए क्योंकि आपके साथी के कोड में बाह्य निर्भरता है।

1

सबवर्जन में, 'फोर्किंग' 'शाखाकरण' है, और 'परिवर्तन शामिल करना' विलय 'है।

मुझे नहीं लगता कि आप The Subversion book के प्रासंगिक अनुभागों को पढ़ने के बिना काफी सावधानी से पढ़ सकते हैं। एक बार जब आप इसे प्रतिबद्ध करते हैं तो यह बहुत स्पष्ट रूप से लिखा और समझने में आसान होता है।

+0

हाँ, मुझे पता है :) मेरी समस्या में सभी के भीतर शाखा बनाने/विलय करने की बजाय दो अलग-अलग प्रतिनिधि हैं। – dragonmantank

+0

आप शाखा नहीं बना सकते हैं, लेकिन आप प्रोजेक्ट के वर्तमान संस्करण को निर्यात कर सकते हैं और इसे अन्य रेपो में जोड़ सकते हैं (इसलिए आपके पास एक नई नई प्रति है)। एक बार वहां, आप अभी भी उनके बीच विलय कर सकते हैं। – gbjbaanb

0

जब तक कि काम उन संशोधनों को मूल परियोजना में वापस छोड़ने के इच्छुक नहीं है, तो मैं वहां एक नया नया एसवीएन प्रोजेक्ट शुरू करूंगा (प्रोजेक्ट बी)। फिर, जब आप बीएसडी लाइसेंस प्राप्त परियोजना (प्रोजेक्ट ए) की अपनी अगली रिलीज में प्रगति करते हैं, तो आप अंतिम रिलीज से परिवर्तन सेट कर सकते हैं, और फिर उन्हें प्रोजेक्ट बी

पर लागू कर सकते हैं यह कई व्यक्तित्व विकार की तरह प्रतीत हो सकता है, लेकिन आप कहां हैं (शब्द या घर) के आधार पर आपको दो अलग-अलग इकाइयों के रूप में कार्य करना होगा।

दूसरी तरफ आईएफएफ काम को उन संशोधनों को मूल परियोजना में वापस छोड़ने के लिए तैयार है, तो आपका बेहतर विकल्प शाखा बनाना और परियोजना ए में प्रोजेक्ट बी (आवधिक रूप से) में अपने परिवर्तनों को मर्ज करना है।

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