यदि मैनिफेस्ट विशेष रूप से बड़ा हो जाता है तो इसका परिणाम धीमा प्रदर्शन हो सकता है। Mercurial में एक वैकल्पिक भंडार प्रारूप है - जनरलडेल्टा - जो अक्सर बहुत कम प्रकट होता है।
आप अपने प्रकट के आकार की जाँच कर सकते का उपयोग कर:
ls -lh .hg/store/*manifest*
generaldelta से अधिकतम मूल्य प्राप्त करने के लिए:
स्थापित मर्क्युरियल 2.7.2 या बाद में (2.7.2 एक भी शामिल है सामान्य डील्टा में एक बग को ठीक करें जिसके परिणामस्वरूप बड़े मैनिफेस्ट आकार हो सकते हैं - लेकिन एक अच्छा मौका है कि आप पहले के संस्करण के साथ बग नहीं मारेंगे)।
hg --config format.generaldelta=1 clone --pull orig orig.gd
निष्पादित करें।
यह प्रकट आकार में कुछ सुधार दे सकता है, लेकिन पूर्ण लाभ नहीं।
hg --config format.generaldelta=1 clone --pull orig.gd orig.gd.gd
निष्पादित करें।
क्लोन का क्लोन मैनिफेस्ट आकार में बहुत अधिक सुधार दे सकता है। इसका कारण यह है कि जब एक सामान्य डेल्टा रेपो चीजों से खींचते हैं तो मैनिफेस्ट आकार को अनुकूलित करने के लिए फिर से किया जाएगा।
जनरलडेल्टा के संभावित लाभों के उदाहरण के रूप में, मैंने हाल ही में एक रेपो को बदल दिया है जो ~ 55000 एसवीएन काम करता है (hgsubversion का उपयोग करके खींच लिया गया है) प्लस ~ 1000 Mercurial Commits/विलय/grafts, आदि मूल रेपो में प्रकट ~ 1.4GB। पहले क्लोन में मेनिफेस्ट ~ 600 एमबी था। क्लोन के क्लोन में मेनिफेस्ट ~ 30 एमबी था।
सामान्य डेलटा ऑनलाइन के बारे में बहुत सारी जानकारी नहीं है - यह अभी भी डिफ़ॉल्ट प्रारूप बनने से पहले किया जाना बाकी है, लेकिन यह कई परियोजनाओं के लिए अच्छा काम करता है। पहले कुछ Google खोज परिणामों में पहली बार पेश की गई जानकारी से कुछ जानकारी होती है, और Mercurial-dev मेलिंग सूची पर कुछ हालिया चर्चा हुई थी।
स्रोत
2013-10-10 11:32:42
मैर्कुरियल के बारे में मुझे जो कुछ पता है, उससे ऐसा कुछ भी नहीं होना चाहिए जो मर्कुरियल करता है जो इसे विखंडन के संबंध में धीमा कर देता है, आदि। क्या आपने अपनी डिस्क पर एक सामान्य डिस्क डिफ्रैगमेंटर चलाने की कोशिश की है? इसके अलावा, किस तरह के संचालन धीमे होते हैं, और कितनी धीमी, इत्यादि? –
एचजी qref वास्तव में धीमी चीज है। 70000ish के साथ रेपो पर शायद 50 सेकंड लेता है। मैं मानता हूं कि यह एक विशिष्ट विशिष्ट समस्या नहीं है (हालांकि मुझे लगता है कि मर्कुरियल एक्सेस पैटर्न इसे बढ़ाते हैं), लेकिन मैक में अंतर्निहित डिफ्रैगमेंटर (AFAICT) नहीं है। –