version control क्या कोई वितरित VCS है जो बड़ी फ़ाइलों का प्रबंधन कर सकता है?




version-control dvcs (6)

क्या इसे वितरित करना है? माना जाता है कि एक बड़े लाभ को तोड़ने वाला नया, वितरित किया गया है VCSes, द्विआधारी फ़ाइलों से निपटने की बेहतर क्षमता है।

क्या कोई वितरित संस्करण नियंत्रण प्रणाली (जीआईटी, बाजार, मर्क्यूरीयल, डैरक आदि) है जो उपलब्ध RAM से अधिक फ़ाइलों को संभाल सकती है?

मुझे बड़ी द्विआधारी फाइल (यानी डेटासेट, स्रोत वीडियो / छवियां, अभिलेखागार) करने में सक्षम होने की आवश्यकता है, लेकिन मुझे उन्हें अलग-अलग करने में सक्षम होने की आवश्यकता नहीं है, केवल फाइल करने में सक्षम होने और उसके बाद अपडेट करने में सक्षम होने की आवश्यकता नहीं है।

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


जब मैंने इस सवाल के बारे में पूछा 3 साल हो गए हैं, लेकिन, संस्करण 2.0 Mercurial के रूप में बड़ेफ़ाइल विस्तार शामिल है , जो कि जो मूल रूप से मैं मूल रूप से तलाश कर रहा था पूरा करता है:

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


हां, प्लास्टिक एससीएम यह वितरित किया जाता है और यह 4 एमबी के ब्लॉक में बड़ी फ़ाइलों को प्रबंधित करता है, इसलिए किसी भी समय उन्हें पूरी तरह से मेम पर लोड करने तक सीमित नहीं होता है। यहां DVCS पर एक ट्यूटोरियल खोजें: http://codicesoftware.blogspot.com/2010/03/distributed-development-for-windows.html


मुझे लगता है कि यह संस्करण नियंत्रण प्रणाली के किसी भी रूप में बाइनरी फ़ाइलों को संग्रहित करने में अक्षम होगा।

बेहतर विचार भंडार में मेटा-डेटा टेक्स्टफ़ाइलों को संग्रहीत करना होगा जो बाइनरी ऑब्जेक्ट्स का संदर्भ देता है।


मैं निष्कर्ष पर आया कि इस मामले में सबसे अच्छा समाधान ZFS का उपयोग करना होगा।

हां ज़ेडएफएस एक डीवीसीएस नहीं है, लेकिन:

  • आप नया एफएस बनाकर रिपॉजिटरी के लिए स्थान आवंटित कर सकते हैं
  • स्नैपशॉट्स बनाकर आप परिवर्तनों को ट्रैक कर सकते हैं
  • आप स्नैपशॉट (कमिट्स) को अन्य ZFS डाटासेट पर भेज सकते हैं

कोई मुफ्त वितरित संस्करण नियंत्रण प्रणाली इस का समर्थन नहीं करता है यदि आप यह सुविधा चाहते हैं, तो आपको इसे लागू करना होगा।

आप जीआईटी को लिख सकते हैं: वे लिनक्स कर्नेल डेवलपमेंट उपयोग केस के लिए कच्चे प्रदर्शन में दिलचस्पी रखते हैं। यह असंभव है कि वे बड़े पैमाने पर बाइनरी फ़ाइलों को स्केलिंग में प्रदर्शन व्यापार बंद स्वीकार करेंगे। मुझे आनंदमय के बारे में नहीं पता है, लेकिन वे प्रदर्शन के लिए उनके संचालन मॉडल को अपने ऑपरेटिंग मॉडल के युग्मन में गिट के समान विकल्प बनाते हैं।

सिद्धांत रूप में, बाज़ार आपके उपयोग के केस को एक प्लग इन के साथ समर्थन में सक्षम होना चाहिए जो कि पेस्ट्री / शाखा / रिपॉजिटरी स्वरूपों का कार्यान्वयन करता है, जिनके ऑन-डिस्क संग्रहण और कार्यान्वयन की रणनीति आपके उपयोग केस के लिए अनुकूलित है। यदि आंतरिक संरचना आपको अवरुद्ध करती है, और आप उपयोगी कोड जारी करते हैं, तो मैं उम्मीद करता हूं कि कोर डेवलपर्स आंतरिक आर्किटेक्चर को ठीक करने में सहायता करेंगे। इसके अलावा, आप कैनोनिकल के साथ एक फीचर डेवलपमेंट अनुबंध सेट अप कर सकते हैं

संभवत: सबसे व्यावहारिक दृष्टिकोण, विशिष्ट डीसीसीएस के बावजूद, एक हाइब्रिड सिस्टम बनाना होगा: एक विशाल फाइल स्टोर को कार्यान्वित करें, और इस स्टोर में ब्लॉप्स को अपनी पसंद के डीवीसी में स्टोर करें।

पूर्ण प्रकटीकरण: मैं कैनोनिकल के एक पूर्व कर्मचारी हूं और बाज़ार डेवलपर्स के साथ मिलकर काम किया है।







large-files