अक्सर पूछे जाने वाले प्रश्न, और hginit.com वास्तव में svn से hg में संक्रमण करने में मेरी सहायता के लिए उपयोगी रहा है।मर्कुरियल सब्रेपिटिटरीज बनाना उपversण बाहरीों की तरह व्यवहार करता है
हालांकि, जब उपद्रव के बाहरी हिस्सों में एचजी की उप-प्रदर्शनी सुविधा का उपयोग करने की बात आती है, तो मैंने हर चीज की कोशिश की है और एसवीएन बाहरी के अच्छे व्यवहार को दोहराना नहीं कर सकता।
यहाँ मैं क्या करना चाहते हैं का सबसे सरल उदाहरण है:
Init "lib" भंडार यह भंडार नहीं है एक स्वसंपूर्ण के रूप में इस्तेमाल किया जाता है; इसे हमेशा उप-भंडार के रूप में मुख्य भंडारों द्वारा शामिल किया जाता है।
Init एक या अधिक खजाने उदाहरण सरल रखने के लिए भी शामिल है, मैं "init" भंडार कहा जाता है "मुख्य"
होगा "मुख्य" शामिल एक subrepository
- के रूप में "lib"
महत्वपूर्ण रूप से - और यहां मैं क्या काम नहीं कर सकता: जब मैं "मुख्य/lib" के अंदर एक फ़ाइल को संशोधित करता हूं, और मैं संशोधन को दबाता हूं, तब उस परिवर्तन को "lib" भंडार में धक्का दिया जाता है - नहीं "मुख्य" के अंदर की एक प्रतिलिपि में।
कमांड लाइन शब्दों से ज़ोर से बोलती है। मैंने इस विषय पर इतनी सारी विविधताओं की कोशिश की है, लेकिन यहां गिस्ट है। अगर कोई जवाब दे सकता है, कमांड लाइनों में, मैं हमेशा के लिए आभारी रहूंगा!
1. Init "lib" भंडार
$ सीडी/घर/moi/hgrepos ## मुझे मेरे एचजी खजाने, भंडारण कर रहा हूँ अपने मुख्य सर्वर पर
$ एचजी init lib
$ "foo"> lib/lib.txt गूंज
$ एचजी lib जोड़ने
$ एचजी ci -एक -m "Init lib"
lib2. Init "मुख्य" भंडार है, और शामिल एक subrepos के रूप में "lib"
$ सीडी/घर/moi/hgrepos
$ एचजी init मुख्य
$ गूंज "foo"> मुख्य/main.txt
$ एचजी lib
../lib मुख्य$ सीडी मुख्य
$ एचजी क्लोन जोड़ने
$ echo "lib = lib"> .hgsub
$ hg ci -A -m "init main"।
यह सब ठीक काम करता है, लेकिन जब मैं "मुख्य" भंडार का क्लोन बना देता हूं, और स्थानीय " " मुख्य/lib "में फ़ाइलों में संशोधन करता हूं, और उन्हें धक्का देता है, तो परिवर्तन" मुख्य/lib " , "lib" नहीं है।
$/घर/moi/एचजी परीक्षण
$ एचजी क्लोन ssh: //[email protected]/hgrepos/
आदेश-पंक्ति-ESE में, यह समस्या है lib lib
$ एचजी क्लोन ssh: मुख्य
$ सीडी //[email protected]/hgrepos/main मुख्य
$ गूंज foo >> lib/lib.txt
01,235,$ एचजी सेंट
एम lib.txt
$ एचजी कॉम -m "संशोधित lib.txt, मुख्य रेपोस अंदर से"
$ एचजी धक्का
को धक्का lib.txt एसएसएच: //[email protected]/hgrepos/main/lib
एचजी से आउटपुट की आखिरी पंक्ति समस्या दिखाती है।
यह दिखाता है कि मैंने lib में फ़ाइल की एक प्रतिलिपि में संशोधन किया है, lib libository में फ़ाइल के लिए नहीं। अगर यह काम कर रहा था क्योंकि मैं इसे काम करना चाहता हूं, तो पुश hgrepos/lib होगा, hgrepos/main/lib के लिए नहीं। यानी, मैं देखना होगा:
$ एचजी धक्का
ssh करने के लिए जोर दे: //[email protected]/hgrepos/lib
आप नियम में इस उत्तर कर सकते हैं यदि
केइंग्लैंड में कमांड लाइन रथर,
मैं पूरी तरह से ग़लत हो जाऊंगा!
अग्रिम धन्यवाद!
पोर्टलैंड
एमिली में बदल गया। मेरा जवाब चुनने के बारे में कैसे? एसओ पर मदद करने में बिताए गए समय के लिए यह सामान्य इनाम है। उत्तर के आपके संशोधन आम तौर पर मेरे प्रश्न पर एक 'अपडेट' संपादन में या एक उत्तर में एक टिप्पणी में जाते हैं, न कि उत्तर में। –
और वास्तव में, अपने एसएसएच: // निर्देशों को देखते हुए, आप इसे ओवरइंक कर रहे हैं। स्थानीय सबरेपो सेटअप सेट अप करने के लिए मेरे चरणों का पालन करने के बाद आप एसएसएच पर 'मुख्य' रेपो को क्लोन कर सकते हैं और मर्क्यूरियल रिमोट रेपो पर पूरे मुख्य/lib सेटअप को स्वयं खींचता है। यह सब्रेप्स का असली वादा है - एक क्लोन आपको कई घोंसले वाले रिपोज़ प्राप्त करता है। –