सब्रेपिटिटरीज बिल्कुल वैसे ही काम करते हैं जैसे आप चाहते हैं।
Mercurial स्वचालित रूप से टिप पर सबप्रो को अपडेट नहीं करता है। यह हमेशा आपके द्वारा चुने गए परिवर्तनों पर रहता है। documentation से:
Subrepos स्वचालित रूप से अपने सूत्रों के नवीनतम changeset ट्रैक नहीं करते। इसके बजाए, उन्हें उन परिवर्तनों में अपडेट किया गया है जो से संबंधित हैं जो शीर्ष-स्तरीय परिवर्तन में परिवर्तन किए गए परिवर्तन के साथ हैं। यह डेवलपर हमेशा अपडेट करते समय संगत कोड और लाइब्रेरीज़ का एक सतत सेट प्राप्त करते हैं।
प्राप्त करने के लिए आप क्या चाहते हैं, तो आपको निम्न चरणों का पालन करें कर सकते हैं:
echo subrepo = https://example.com/subrepo/repo/path > .hgsub
hg add .hgsub
hg clone https://example.com/subrepo/repo/path subrepo
hg -R subrepo update mytag
hg commit
यह निर्दिष्ट रिपॉजिटरी की सामग्री के साथ एक सबrepo निर्देशिका बनाएगा जो mytag
टैग पर तब तक रहेगा जब तक आप मैन्युअल रूप से को किसी अन्य चीज़ पर अपडेट नहीं करते हैं!
जो लोग आपके भंडार को क्लोन करते हैं, वे आपके जैसे ही परिवर्तन (यानी mytag
) पर subrepo होगा।
एफवाईआई, जो परिवर्तन एक सब्रेपो अपडेट किया गया है उसे मुख्य भंडार की रूट पर .hgsubstate
फ़ाइल में संग्रहीत किया जाता है।