2008-09-16 7 views
13

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

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

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

उत्तर

12

यह 3 साल हो गया है के बाद से मैं इस प्रश्न पूछा है, लेकिन, संस्करण 2.0 के रूप में मर्क्युरियल largefiles extension जो पूरा करता है कि मैं क्या मूल रूप से लिए देख रहा था भी शामिल है,:

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

2

मुझे लगता है कि यह संस्करण नियंत्रण प्रणाली के किसी भी रूप में द्विआधारी फ़ाइलों को स्टोर करने अक्षम हो जाएगा।

बेहतर विचार भंडार संदर्भ द्विआधारी वस्तुओं में मेटा डेटा textfiles स्टोर करने के लिए किया जाएगा।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद। लेकिन हाँ, मेरा मतलब यह था कि मैंने क्या पूछा। मुझे संस्करण बड़ी फाइलों की आवश्यकता है - सॉफ्टवेयर की एक और श्रेणी "एंटरप्राइज़ एसेट मैनेजमेंट" है जो मूल रूप से मीडिया संपत्तियों के लिए सर्वर पर वीसीएस/एपर्चर/वर्जन क्यू है। – joelhardi

+1

मुझे लगता है कि जिस बिंदु को मैं बनाने की कोशिश कर रहा था (पर्याप्त कॉफी मुझे डर नहीं है) यह था कि अधिकांश वीसीएस सिस्टम संस्करण बाइनरी ऑब्जेक्ट्स के लिए डिज़ाइन नहीं किए गए हैं। जैसा कि आप कहते हैं, वे इन-मेमोरी डिस्प्ले करते हैं और डेल्टा स्टोर करते हैं ... आंतरिक रूप से बाइनरी संस्करणों के लिए थोड़ा सा बिंदु है क्योंकि वे आंतरिक हैं। – pobk

0

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

+0

उत्तर के लिए धन्यवाद, लेकिन हाँ, यह करता है। मैं मानता हूं कि एसवीएन बाइनरी फाइलों को अच्छी तरह से संभालता है - जो कि मुझे रहस्यमय करता है कि वीसीएसई मैंने पहले परीक्षण किया था, जैसे कि 400 एमबी फाइल पर सीगफॉल्टिंग स्वीकार्य व्यवहार है। – joelhardi

10

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

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

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

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

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

+0

उत्तर के लिए बहुत बहुत धन्यवाद। मैंने पिछले साल कुछ एचजी और बीजेडआर डेवलपर्स के साथ मेल खाया था और उन्होंने जो कहा वह आपके मूल्यांकन को दर्पण करता है - बीजेडआर लोगों ने कहा, "हम्म यह दिलचस्प है, आप इसे कोड कर सकते हैं" और हमने इसे माना लेकिन समय लागत की तुलना में समय की लागत नहीं समझी एसवीएन या हैकिंग का उपयोग ... – joelhardi

+0

... कुछ हाइब्रिड समाधान ऊपर जहां हम फ़ाइल हैंश या कुछ कर रहे हैं। डीवीसीएस परियोजनाओं को एसवीएन और वाणिज्यिक उत्पादों के विपरीत, वितरित एफओएसएस विकास उपयोग मामले द्वारा भारी रूप से संचालित किया जाता है, जिसमें दिमाग में व्यापक उपयोग हैं। एचजी और बीजेडआर महान परियोजनाएं हैं, मेरे लिए बहुत बुरा है। – joelhardi

4

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

+0

टिप के लिए धन्यवाद, मैं अब इस समस्या पर काम नहीं कर रहा हूं लेकिन आपका जवाब इस धागे को पढ़ने वाले लोगों के लिए उपयोगी होगा। उनकी वेबसाइट से, प्लास्टिक एससीएम के लिए लिनक्स/बीएसडी/ओएस एक्स समर्थन प्रतीत होता है क्योंकि यह सी #/मोनो है। वे बैकएंड स्टोरेज के लिए एसक्यूएल का उपयोग कर रहे हैं, हालांकि, मैं अभी भी "बड़ी फाइल" समर्थन/प्रदर्शन की संदिग्ध हूं ... जिसके द्वारा मैं मूल रूप से 1-10 जी श्रृंखला में डीवी वीडियो स्रोतों का मतलब था। SQLite * से कुछ ऐसा कुछ अलग करना/अलग करना * काम कर सकता है, लेकिन कितना अच्छा है? अगर किसी के पास इसका कोई अनुभव है, तो यह जोड़ने के लिए बहुत अच्छी जानकारी होगी। – joelhardi

+0

हाय, असल में हम केवल 2 जीबी फाइलों के साथ एक और परीक्षण चलाते हैं ... यह डेटाबेस पर 4 एमबी ब्लब्स स्टोर करने के बारे में है, जो ... बहुत तेज़ है ... SQL सर्वर, या फायरबर्ड या यहां तक ​​कि MySQL का उपयोग ... प्लास्टिक है एफएस पर भी फाइलों को सहेजने का विकल्प। – pablo

3

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

0

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

हाँ ZFS एक DVCS लेकिन नहीं है:

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

 संबंधित मुद्दे