2008-12-31 21 views
9

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

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

तो मैं ऊपर के प्रकाश में दो प्रश्न हैं:

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

  • यह स्केल कैसा है? मैंने पढ़ा है कि एचजी बड़े कोड बेस के लिए ठीक है, लेकिन मैं परेशान हूँ। मेरे काम पर, हमारे पास कुछ 2 लाख लाइनों के जावा एप्लिकेशन (अच्छी तरह से, एक बड़े आम कर्नेल के आसपास कई) हैं, अकेले कोड के लिए 110 एमबी वजन। मेरे पुराने (2004) विंडोज वर्कस्टेशन पर एक साफ संकलन करने से 50 एमबी कक्षा फाइलें उत्पन्न करने में कुछ 15 मिनट लगते हैं! मैं खुद को 3 फाइलों को बदलने के लिए पूरी परियोजना क्लोनिंग नहीं देख रहा हूं। तो यहाँ अभ्यास क्या हैं?

मैंने अभी तक इन प्रश्नों को मेरे रीडिंग में संबोधित नहीं किया है, इसलिए मुझे उम्मीद है कि इससे उपयोगी थ्रेड होगा।

उत्तर

1

प्रश्न 1:

PIDA IDE बहुत अच्छी मर्क्युरियल एकीकरण है। हम विकास के लिए Mercurial भी उपयोग करते हैं। व्यक्तिगत रूप से मेरे पास कुछ परियोजनाओं के बारे में 15 समवर्ती क्लोन हैं, और आईडीई ठीक है। हमें बिल्ड स्क्रिप्ट आदि को ट्वीक करने में परेशानी नहीं है, हम "क्लोन और गो" कर सकते हैं।

ऐसा नहीं है कि कई मामलों में मैं जैसे बग संख्या को क्लोन होगा इतना आसान है:

 
hg clone http://pida.co.uk/hg pida-345 

बग # 345 के लिए, और मैं ठीक करने के लिए तैयार हूँ।

यदि आपको अपने आवेदन की वास्तविक चेकआउट निर्देशिका के आधार पर बिल्ड स्क्रिप्ट को ट्विक करना है, तो मुझे लगता है कि आपकी बिल्ड स्क्रिप्ट हार्ड-कोड किए गए पथों की बजाय किसी प्रकार के प्रोजेक्ट-रिश्तेदार पथ का उपयोग करनी चाहिए।

+0

दिलचस्प टिप्पणी के लिए धन्यवाद, मैं पहले से ही स्थल का दौरा किया, ऐसा लगता है, मैं इसे कोशिश करनी चाहिए। अब, मेरा प्रश्न सामान्य था: यह योजना मौजूदा परियोजनाओं/आईडीई के साथ कितनी अच्छी तरह एकीकृत है? मैं निश्चित रूप से सापेक्ष पथ की आवश्यकता से सहमत हूं, लेकिन कुछ आईडीई का पालन नहीं हो सकता है। – PhiLho

2

फिलो: मैं इस पर नया हूँ, लेकिन तेज भी "आंतरिक शाखाओं" है कि आप इसे क्लोनिंग के बजाय एक ही भंडार के भीतर का उपयोग कर सकते है।

hg clone toto toto-bug-434 

के बजाय आप

cd toto 
hg branch bug-434 
hg update bug-434 
... 
hg commit 
hg update default 

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

आप अभी भी अपने 'काम' भंडार के अलावा स्वच्छ 'भेजे' और 'बाहर जाने वाले' खजाने होना चाहिए। बस आपका 'काम' कई उद्देश्यों को पूरा कर सकता है।

कहा कि, आप कुछ भी जटिल प्रयास करने से पहले अपने काम रेपो क्लोन चाहिए। अगर कुछ गलत हो जाता है तो आप क्लोन को फेंक सकते हैं और शुरू कर सकते हैं।

+0

समस्या यह है कि आप ऐसी शाखा – rkj

+0

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

+0

आप एक शाखा भी बंद कर सकते हैं –

3

आप कुछ अच्छे अंक बढ़ा!

  • कैसे व्यावहारिक IDEs और इस तरह के संदर्भ में, क्लोन की बहुत कुछ है?

आप सही यह कई क्लोन प्रबंधन करने के लिए जब IDEs और अन्य उपकरणों का पूर्ण पथ पर निर्भर मुश्किल हो सकता है कि कर रहे हैं। इसका उपयोग हमेशा आपकी कॉन्फ़िगरेशन फ़ाइलों में सापेक्ष पथों का उपयोग करके हल किया जा सकता है - यह सुनिश्चित कर लें कि कोई भी स्रोत चेकआउट किसी भी स्थान से संकलित हो सकता है, कोई फर्क नहीं पड़ता कि आप किस संशोधन नियंत्रण प्रणाली का उपयोग करते हैं :-)

लेकिन जब आप कई क्लोन से परेशान नहीं होना चाहते हैं, तो कृपया ध्यान दें कि a single clone can cope with multiple branches। "एचजीबुक" कई क्लोनों पर जोर देता है क्योंकि यह काम करने का एक अवधारणात्मक सरल और बहुत सुरक्षित तरीका है। जब आपको अधिक अनुभव मिलता है तो आप देखेंगे कि आप एक ही भंडार में एकाधिक सिर का उपयोग कर सकते हैं (शायद उन्हें bookmarks के साथ नाम देकर) ऐसा करने के लिए।

  • यह स्केल कैसा है?

एक 110 एमबी भंडार क्लोनिंग काफी तेजी से किया जाना चाहिए: यह कब तक यह आपके डिस्क के लिए 110 एमबी लिखने के लिए ले जाता है पर निर्भर करता है। recent message to the Mercurial mailinglist में यह बताया गया था कि 6.3 जीबी क्लोनिंग में 4 मिनट लग गए - 110 एमबी तक स्केलिंग लगभग 4 सेकंड देता है। यही कारण है कि काफी तेजी से है कि अपनी चाय अभी भी चाल के गर्म :-) भाग है होना चाहिए कि इतिहास डेटा बस मुश्किल से जुड़े हैं (हाँ, यह भी Windows पर) और इसलिए यह काम कर में फ़ाइलों को लिखने का केवल एक मामला है प्रति।

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