2011-01-21 14 views
6

में एकाधिक ग्रहण परियोजनाएं मेरे पास कई ग्रहण परियोजनाएं हैं जिन्हें मैं दो अलग-अलग एचजी भंडारों में रखना चाहता हूं।एक मर्कुरियल रिपोजिटरी

मैंने पहले टोर्टोइजएचजी का उपयोग करके दो एचजी रिपोजिटरी बनाने और इसे जोड़ने के लिए पहले से ही प्रत्येक रिपॉजिटरीज़ में अपनी परियोजनाएं करने में कामयाब रहा है। ऐसा करने से अब मेरे पास दो परियोजनाओं के साथ दो एचजी भंडार हैं।

अगला मैं MercurialEclipse का उपयोग कर ग्रहण में उन भंडारों को क्लोन करता हूं। परियोजनाएं ग्रहण में अपेक्षित दिखाई देती हैं।

उदाहरण 1:

Eclipse workspace 
       | 
       |--Project 1 
       |--Project 2 
       |--Project 3 
       |--Project 4 

लेकिन अगर मैं निर्देशिका संरचना में देखो यह इस तरह दिखता है:

उदाहरण 2:

c:-- 
    | 
    |-workspace 
       | 
       hgRepository1 
       |   |--.hg 
       |   |--Project 1 
       |   |--Project 2 
       | 
       | 
       hgRepository2 
          |--.hg 
          |--Project 3 
          |--Project 4 

जब मैं इसे इस तरह देखने के लिए चाहते हैं।

उदाहरण 3:

c:-- 
    | 
    |-workspace 
       |--.hg 
       |--Project 1 
       |--Project 2 
       |--Project 3 
       |--Project 4 

यह एक एकल मर्क्युरियल भंडार है और किसी भी तरह यह क्लोन और परियोजनाओं कार्यक्षेत्र निर्देशिका के अंतर्गत सीधे दिखाई देते है, और एक उपनिर्देशिका में नहीं संभव है?

+0

आप 1 .hg निर्देशिका को एकाधिक रिपॉजिटरीज़ से डेटा नहीं बना सकते हैं। क्या वे 4 परियोजनाएं वास्तव में एक ही परियोजना के कुछ हिस्सों हैं, या क्या वे अलग-अलग परियोजनाएं हैं जिन्हें आपने किसी तरह से जोड़ा है? –

+1

शायद मैं स्पष्ट नहीं हो सकता ....... लेकिन यह एक एचजी भंडार है जिसमें एकाधिक ग्रहण परियोजनाएं हैं। वे घोंसला hg भंडार नहीं हैं। – stuff22

उत्तर

5

आपको ग्रहण कार्यक्षेत्र से प्रोजेक्ट को सहेजना नहीं चाहिए, या उन्हें ग्रहण कार्यक्षेत्र में पुनर्स्थापित नहीं करना चाहिए।
उन परियोजनाओं (.project, .classpath, और other project specific resources) ग्रहण कार्यक्षेत्र (और फिर imported into the workspace) के बाहर, अपनी निर्देशिका में होना चाहिए।

इस तरह, किसी भी निर्देशिका संरचना को नए ग्रहण कार्यक्षेत्र में विभिन्न प्रोजेक्ट को आयात करने के लिए ठीक होगा।

+0

दो मुद्दे, अगर मैं आपको सही ढंग से समझता हूं। आइए कहें कि मैं वर्कस्पेस में Mercurial भंडार आयात/क्लोन नहीं करता हूं। मैं इसे कहीं और करता हूं और फिर ग्रहण में आयात करता हूं। यह अभी भी इस तथ्य को हल नहीं करता है कि परियोजनाएं निर्देशिका पेड़ में विभिन्न स्थानों पर रहते हैं। वे अभी भी उदाहरण 2 की तरह दिखेंगे लेकिन जाहिर है वर्कस्पेस निर्देशिका में नहीं। – stuff22

+0

@ stuff22: विचार यह है कि वे जहां भी चाहें दिखा सकते हैं: एक बार रेपो क्लोन किया जाता है (जो भी आंतरिक संरचना इसे पालन करना है), आप हमेशा ग्रहण कार्यक्षेत्र में परियोजनाओं को आयात करने में सक्षम होंगे *। आपको अपनी परियोजनाओं के लिए किसी भी विशिष्ट कार्यक्षेत्र संरचना का पालन नहीं करना है। – VonC

1

मुझे काफी समझ में नहीं आता है। आप खुद के अंदर रेपो क्लोन नहीं कर सकते हैं। आप प्रोजेक्ट 1 और प्रोजेक्ट 2 की हार्ड कॉपी क्यों नहीं बना सकते, 3 और 4 बनाते हैं?

+0

मैं अपने अंदर भंडारों को क्लोन नहीं कर रहा हूं। .hg बस इंगित करता है कि कौन से फ़ोल्डर्स मर्क्योरियल रिपॉजिटरीज़ हैं (या जहां मैं उन्हें बनना चाहता हूं) – stuff22

+0

मुझे अभी भी यह नहीं मिला है। आप 1 एचजी रेपो के साथ अपनी संरचना क्यों नहीं बनाते हैं और मौजूदा परियोजनाओं को ग्रहण कार्यक्षेत्र में आयात करते हैं? – Roberto

+0

वैसे भी, मुझे लगता है कि मैं जो कहने की कोशिश कर रहा हूं वह वॉनसी कह रहा है। जो भी संरचना आप करना चाहते हैं और फिर प्रत्येक प्रोजेक्ट को ग्रहण में आयात करें। प्रोजेक्ट, .classpath और अन्य फ़ाइलें आपके ग्रहण कार्यक्षेत्र (एचजी रेपो के बाहर) के अंदर होंगी लेकिन आप ग्रहण के माध्यम से अपने एचजी रेपो से स्रोत फ़ाइलों को संपादित करेंगे। – Roberto

1

मैं जानता हूँ कि कुछ लोगों को मेरी समाधान की तरह अभ्यस्त (और मुझे पता है कि यह कुछ समय के बाद से यह सवाल पूछा गया है हो गया है), लेकिन यहाँ यह है:

  1. ग्रहण से सामान्य
  2. बाहर निकलें के रूप में कार्यक्षेत्र बनाएं (सुनिश्चित नहीं है कि यह आवश्यक है लेकिन यह करने में कोई हानि नहीं होती है)
  3. एचजी के साथ बनाई गई वर्कस्पेस निर्देशिका में सीधे अपनी Mercurial भंडार क्लोन करें (यह आपकी रिपोजिटरी का नाम वर्कस्पेस के समान है)
  4. ग्रहण पर वापस जाएं और ईए के लिए एक नई परियोजना बनाएं सी उप-निर्देशिका (आपके उदाहरण में यह प्रोजेक्ट 1, प्रोजेक्ट 2, आदि होगा)। यह आपको चेतावनी देगा कि निर्देशिका पहले से मौजूद है लेकिन यह ठीक है।
  5. MercurialEclipse नियंत्रित किया जा रहा मर्क्युरियल संस्करण

यह लिनक्स पर ग्रहण में CDT में सफलतापूर्वक परीक्षण किया गया है के रूप में प्रत्येक परियोजना की पहचान करनी चाहिए। और मैं सलाह देता हूं कि आप अपनी परियोजनाओं को प्रबंधित करने के लिए ग्रहण द्वारा बनाई गई फ़ाइलों को अपने .hignignore में डालें।

मुझे उम्मीद है कि इससे मदद मिलती है।

3

मैं इस सटीक समस्या में खुद भाग गया, और समाधान तुरंत स्पष्ट नहीं है। इस ब्लॉग पोस्ट में चरण-दर-चरण निर्देश हैं जो दिखाते हैं कि आप क्या हासिल कर रहे हैं: workflow: create and init multi-project repositories with HgEclipse (Mercurial)।/To/कार्यक्षेत्र/परियोजनाओं-फ़ोल्डर

  • हालांकि कई नई परियोजनाओं की जरूरत बनाएं, हर एक

    • ओपन मर्क्युरियल देखें और पर/पथ एक नया भंडार बनाने के लिए:

      संक्षेप में, आप करना चाहते हैं/पथ/से/वर्कस्पेस/प्रोजेक्ट-फ़ोल्डर/प्रोजेक्ट नाम के (गैर-डिफ़ॉल्ट) स्थान पर बनाया जाना चाहिए।

    आप ग्रहण में इच्छित लेआउट के साथ समाप्त हो जाएंगे और परियोजनाएं सभी परियोजनाओं-फ़ोल्डर में स्थित भंडार साझा करेंगी।

  • +1

    लिंक के लिए धन्यवाद। यह वास्तव में काम करता है, और नवीनतम एचजीईक्लिसे के साथ ऐसा लगता है कि मूल पोस्ट में वर्णित चरणों 2.2 और 2.3 को करने की आवश्यकता नहीं है। बॉक्स के बाहर एक ही भंडार के तहत गैर-डिफ़ॉल्ट स्थान पर परियोजनाओं को जोड़ना। – Mikhail

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