2011-05-31 12 views
25

मेरे भंडार में मैंने मॉड्यूल के लिए कई उप-भंडार जोड़े हैं जिनका मैं उपयोग कर रहा हूं। मैं हमेशा इन सब्रेपों को "केवल खींचने" के रूप में पेश करने जा रहा हूं। मैं उनमें कोई बदलाव करने की योजना नहीं बना रहा हूं लेकिन यदि कोई नया संस्करण जारी किया गया है तो आसानी से नए बदलावों को खींचने की क्षमता बनाए रखना चाहते हैं।मैं subrepos को धक्का देने से Mercurial कैसे रोक सकता हूँ?

जब मैं मुख्य भंडार को दबाता हूं, तो Mercurial उप-भंडारों को धक्का देने की कोशिश करता है। क्या इसे रोकने के लिए कोई सेटिंग है?

+0

@Mercurial क्या Mercurial में गिट .gitignore फ़ाइल के समान कुछ नहीं है? – Arlen

+0

बेशक यह करता है, लेकिन वह subrepos बात कर रहा है प्रति फ़ाइल अनदेखा नहीं। गिट में एक ही सबप्रो सामग्री है, और इसी तरह .gitignore के साथ हल नहीं किया जाएगा। –

+0

मैं subrepos को अनदेखा नहीं करना चाहता, मैं बस उन्हें धक्का का हिस्सा नहीं बनना चाहता क्योंकि वे कभी नहीं बदलेंगे। – Soviut

उत्तर

-1

निर्भर करता है कि आप किस Mercurial क्लाइंट का उपयोग करते हैं। मैं tortoisehg का उपयोग करता हूं, और मैंने पाया है कि फ़ोल्डर पर राइट क्लिक करना और कछुए में फ़ाइलों का चयन करना भूल जाना >> भूल जाना सब कुछ है। फ़ाइलों का चयन करें और आपको फिर से परेशान करने की आवश्यकता नहीं होगी।

+1

आप फ़ाइलों को अनदेखा करने के बारे में सोच रहे हैं, लेकिन सोवियत उपरोक्त में धक्का नहीं देने के बारे में पूछ रहा है। –

7

आप जो व्यवहार कर रहे हैं उसके आधार पर कुछ चीजें आप कर सकते हैं।

क्या आप वास्तव में subrepo के अंदर संपादन और काम कर रहे हैं? यदि ऐसा है, तो आपको एक अलग विक्रेता-शाखा-जैसे रेपो बनाना चाहिए जहां आप अपस्ट्रीम ("उनके") परिवर्तनों के साथ अपने परिवर्तनों को मर्ज करते हैं, और आपके उपरोक्त बिंदु को उस पर रखें। यह शायद की तरह कुछ:

repos 
    main 
    subrepo 
    .hgsub # contains: "subrepo=../theirproject" 
    theirproject # clone of remote, upstream repo 

विचार किया जा रहा है कि subrepo प्रविष्टि पुल केवल नदी के ऊपर रेपो के लिए सीधे बात नहीं है, लेकिन अपने स्वयं के से एक के लिए जहाँ आप के साथ "उनकी"

एक और अपने परिवर्तन मर्ज विकल्प subrepo में परिवर्तन करना बंद करना है। यदि कोई बदलाव नहीं है, और कोई काम नहीं करता है, तो पुश उस रिपो को दाएं पास कर देगा। यदि आप उस कार्य मोड पर स्विच करते हैं तो आप उस रेपो में गलती से आने से बचने के लिए [ui] अनुभाग में [ui] अनुभाग में commitsubrepos = false सेट कर सकते हैं।

नीचे की रेखा यह है कि यदि आप वहां चीजें बदल रहे हैं तो आपको उन्हें (सुरक्षा के लिए) करने की आवश्यकता है और यदि आप उन्हें प्रतिबद्ध कर रहे हैं तो माता-पिता को धक्का दिया जाता है, तो उन्हें धक्का दिया जाएगा, इसलिए बस नियंत्रण करें जहां उन्हें धक्का दिया जाता है और आप जाने के लिए अच्छे हैं।

+2

मैं किसी भी तरह से उप-रेपो संपादित या बदल नहीं रहा हूं। मेरे संदर्भ में पुस्तकालय के रूप में यह सख्ती से है। मैं चाहता हूं कि वे उप-रिपोज़ बने रहें ताकि मैं अपडेट खींच सकूं, लेकिन मैं नहीं चाहता कि वे लगातार धक्का देने की कोशिश कर रहे हों जब कुछ भी कभी नहीं बदलेगा। – Soviut

+1

यदि आपने उपरोक्त में कुछ भी नहीं बदला है तो Mercurial उन्हें धक्का देने की कोशिश नहीं करेगा। या इसके बजाय इसमें कोई बदलाव नहीं आएगा और पुश तुरंत बाहर निकल जाएगा। यदि आप उस रेपो में जाते हैं और 'एचजी आउटगोइंग' आपको कोई सामग्री दिखाता है तो आपने कुछ बदल दिया है (और प्रतिबद्ध)। क्या आप अपने प्रश्न को उस विशिष्ट आउटपुट के साथ अपडेट कर सकते हैं जब आप पेरेंट रेपो में 'एचजी पुश' करते हैं? –

+1

बस पैरेंट रेपो पर एचजी धक्का। मैं मूल रूप से सबप्रो चेक को रोकने की उम्मीद कर रहा था क्योंकि यह सामान्य धक्का से धीमा प्रतीत होता है। – Soviut