मेरे पास कई अर्ध-संबंधित परियोजनाएं हैं जिन्हें मैं संस्करण नियंत्रण करना चाहता हूं। SVN में मैं किसी एक प्रोजेक्टएकाधिक शाखाओं के लिए Mercurial भंडार लेआउट
/scripts #updates in sync with project1 & project2
/project1 #requires database
/project2 #requires database
/database
स्वाभाविक रूप से अन्य SVN लेआउट इस खिलौने उदाहरण के लिए संभव हो रहे हैं के भीतर उन्हें के रूप में एकाधिक निर्देशिका स्थापित करेगा ऊपर है, लेकिन इस लेआउट लाभ हैं:
- मैं कॉपी कर सकते हैं शाखाओं के बीच फ़ाइलें इतिहास को संरक्षित करते हुए
- मैं केवल परियोजनाओं का एक सबसेट देख सकता हूं, उदाहरण के लिए
svn co repo/project2; svn co repo/database
। यह प्रोजेक्ट 1 बड़ा होने पर भंडारण & समय की एक बड़ी मात्रा बचाता है। - आसान भंडार प्रबंधन, के बाद से उपयोगकर्ता पहुँच सभी परियोजनाओं
के लिए एक बार परिभाषित किया गया है इस प्रतिमान में अच्छी तरह से नक्शा नहीं है you can't clone a single directory of a mercurial repo के बाद से तेज करने के लिए। तो मेरा सवाल है: मर्कुरियल में बड़ी, बारीकी से संबंधित परियोजनाओं को स्टोर करने का सबसे आम तरीका क्या है?
मेरे विचार:
- एकाधिक खजाने - फ़ाइलें जो परियोजनाओं
- Forests के बीच ले जाने के इतिहास खो देता है - रुक लगता है, और मुझे यकीन है कि कैसे स्थिर इस विस्तार ज्यादातर के साथ
- नाम शाखाओं है नहीं कर रहा हूँ असंबद्ध सामग्री
- SubRepos - दुर्भाग्य से मैं उबंटू 9.04 चला रहा हूं, जो केवल 1.1.2 जहाजों को चलाता है। अन्यथा यह एक अच्छा विकल्प
वाह, नामित शाखा चरणों के लिए धन्यवाद। इस तरह विचार करने के लिए बहुत बदसूरत है। मैं सिर्फ इतिहास खोने के साथ सौदा करूँगा-वैसे भी यह एक दुर्लभ मामला था। दरअसल, परियोजनाओं के बीच परिवर्तन विलय करने की तुलना में एक बड़ी समस्या निर्भरताओं को सिंक्रनाइज़ करना है। अर्थात। प्रोजेक्ट 1 @ आर 50 डाटाबेस @ आर 50 की जरूरत है। यह svn के साथ किया जा सकता है, हालांकि इसे ऊपर दिए गए की तुलना में थोड़ा अधिक जटिल चेकआउट की आवश्यकता है। – Quantum7
निर्भरता सिंक्रनाइज़ करना ठीक है सबबैप्स और वन क्या हैं। – Omnifarious
आगे विस्तार करने के लिए, मैं SubRepos और Forests को svn का कार्यान्वयन करने के लिए मानता हूं: Mercurial के लिए बाहरी, और Mercurial मानसिकता के साथ कि मेटा-डेटा को स्पष्ट रूप से उनसे जुड़ा हुआ फाइलों में स्पष्ट रूप से संग्रहीत किया जाना चाहिए और विशेष उद्देश्य VCS आदेशों के साथ प्रबंधित किया जाना चाहिए। – Omnifarious