मैं TortoiseHg का उपयोग करके नेस्टेड रिपॉजिटरीज को सही ढंग से ट्रैक करने के तरीके पर संघर्ष कर रहा हूं।Mercurial/TortoiseHg के साथ घोंसला वाले एचजी भंडारों को संभालने का सही तरीका क्या है?
मेरे पास एक मुख्य भंडार है जो मेरी पूरी परियोजना को ट्रैक करता है। इस प्रोजेक्ट में कई छोटे प्लगइन्स हैं जो प्लगइन/उपनिर्देशिका के अंदर संग्रहीत हैं।
मुझे प्रत्येक प्लगइन को स्वतंत्र रूप से ट्रैक करना होगा (उनमें से प्रत्येक के लिए बिटबकेट करना और धक्का देना) जबकि अभी भी मेरे प्रोजेक्ट की "पूरी" प्रतिबद्धता बनाने में सक्षम है, जिसमें प्लगइन में किए गए परिवर्तन और इसे धक्का देना शामिल है एक अन्य स्थान (बिटबकेट नहीं)।
जो मैंने अभी तक किया है वह मेरे प्रत्येक प्लगइन के लिए एक नया रेपो बना रहा है। मैं उन्हें प्रतिबद्ध और बिटबकेट में आसानी से धक्का दे सकता हूं। लेकिन जब मैं अपना "मुख्य" भंडार करने के लिए गया, तो TortoiseHg एक त्रुटि संदेश प्रदर्शित करता है जिसमें कहा गया है कि abort: path 'mainrepo\\plugins\\plugin1\\plugin1.php' is inside repo 'mainrepo\\plugins\\plugin1'
।
मैं देख सकता हूं कि मैं कुछ गलत कर रहा हूं, लेकिन मैं यह नहीं बता सकता।
मैं WinXP पर Mercurial और TortoiseHg (ToirtoiseHg संस्करण 0.9.3 + 237-ea50f793bbe4 और Mercurial-1.4.3 + 225-70dea42c9406) दोनों की रात का उपयोग कर रहा हूं। मैंने पढ़ा है कि इस टोर्टोइज एचजी बिल्ड में सब्रेप हैंडलिंग को जोड़ा गया था, लेकिन, ठीक है, मुझे यह भी यकीन नहीं है कि सब्रेपोज़ ऐसी सुविधा है जिसे मैं यहां उपयोग करना चाहता हूं।
अद्यतन
मैं कुछ प्रगति की है, लेकिन अभी भी यह रास्ता नहीं मैं चाहता हूँ काम करने के लिए नहीं मिल सकता है। यहाँ
-- .hg
-- core
-- app
-- file.php
-- file.css
-- plugins
-- plugin1
-- file1.php
-- plugin2
-- file2.php
मैं अनुप्रयोग/plugins के पास गया, और एक प्लगइन (नाम plugin3) क्लोन BitBucket से:
यहाँ मेरी संरचना है। मैंने रूट पर एक .hgsub फ़ाइल बनाई और इसमें app/plugins/plugin3 = app/plugins/plugin3
जोड़ा। मैं तब अपनी पूरी निर्देशिका करने में सक्षम था।
लेकिन फिर मैंने बिटबकेट से प्लगइन 1 के नवीनतम संस्करण को पकड़ने की कोशिश की, इसलिए मैं ऐप/प्लगइन्स पर गया, प्लगइन 1/फ़ोल्डर हटा दिया और बिटबकेट से प्लगइन 1 को क्लोन किया। मैं तो app/plugins/plugin1 = app/plugins/plugin1
जोड़ा .hgsub लिए लेकिन जब मैं यह करने की कोशिश की मैं abort: path 'app/plugins/plugin1/file1.php' is inside repo 'app\\plugins\\plugin1'
के साथ स्वागत किया गया था समस्या आग जब मेरे subrepo पहले से ही plugins/निर्देशिका में एचजी द्वारा पता लगाया एक निर्देशिका के रूप में एक ही नाम रखती है लगता है।
क्या मैं गलत कर रहा हूँ? क्या मुझे अपने प्लगइन के .hg में कुछ खास जोड़ना/संपादित करना चाहिए?
अद्यतन
मैं अंत में यह रास्ता मैं चाहता हूँ काम करने के लिए प्राप्त करने के लिए प्रबंधित किया है।
मैं "मैन्युअल" मर्क्युरियल बताने के लिए plugins/plugin1, plugins/plugin2 निर्देशिका दूर करने के लिए, परिवर्तन के लिए प्रतिबद्ध है, तो BitBucket से plugin1 और plugin2 वापस क्लोन, app/plugins/plugin1 = app/plugins/plugin1
जोड़ने .hgsub और सभी प्रतिबद्ध करने के लिए किया था। इसने काम कर दिया।
प्लगइन 1/प्लगइन 2 फ़ोल्डर्स को हटाने के बाद महत्वपूर्ण कदम उठा रहा था।
डॉक्टर से, '.hgsub' वाली रेखा "पहले' नेस्टेड 'हमारे कामकाजी डीआईआर में पथ है, और दूसरा एक यूआरएल या पथ है जो खींचने के लिए है": तो आपको ' ऐप/प्लगइन्स/प्लगइन 3 = ऐप/प्लगइन्स/प्लगइन 3' लेकिन प्लगइन 3 के लिए ऐप/प्लगइन्स/प्लगइन 3 = बिटबकेट यूआरएल। प्लगइन 1 – VonC
के लिए डिट्टो मैंने कोशिश की है, 'http: // bitbucket.org/username/plugin3/',' https: // उपयोगकर्ता नाम @ bitbucket.org/username/plugin3/'और यहां तक कि' ssh: // hg @ bitbucket.org/उपयोगकर्ता नाम/प्लगइन 3 यूआरएल के रूप में लेकिन अभी भी एक ही निरस्त संदेश है। मैंने एलोस को कमांड लाइन से सीधे कोशिश की है, और नतीजा वही है। – pixelastic
आपकी आखिरी टिप्पणी का जवाब न देने के लिए खेद है, लेकिन जब तक आपकी टिप्पणी '@VonC' से शुरू नहीं होती है, तो मुझे अधिसूचित नहीं किया जाएगा। Http://blog.stackoverflow.com/2010/01/new-improved-comments-with-reply/ (अनुभाग "टिप्पणी @ उपयोगकर्ता नाम अधिसूचनाएं") – VonC