हम अक्सर एक परियोजना पर काम कर रहे हैं जहां हमें एक बड़ा डेटा सेट सौंप दिया गया है (कहें, कुछ फाइलें जो 1 जीबी हैं), और इसका विश्लेषण करने के लिए कोड लिख रही हैं।गिट + एक बड़ा डेटा सेट?
सभी विश्लेषण कोड गिट में हैं, इसलिए हर कोई हमारे केंद्रीय भंडार में और बाहर परिवर्तनों की जांच कर सकता है। लेकिन डेटा सेट के साथ क्या करना है कि कोड के साथ काम कर रहा है?
- उपयोगकर्ताओं को पहले भंडार क्लोन है, डेटा के साथ आना चाहिए:
मैं भंडार में डेटा चाहते हैं।
- डेटा 100% केवल पढ़ने योग्य नहीं है; अब और फिर एक डेटा बिंदु सही किया गया है, या एक मामूली स्वरूपण परिवर्तन होता है। यदि डेटा में मामूली परिवर्तन होते हैं, तो उपयोगकर्ताओं को अगले चेकआउट पर अधिसूचित किया जाना चाहिए।
हालांकि, मैं Git भंडार में डेटा नहीं करना चाहती:
- Git एक अतिरिक्त प्रतिलिपि (ताकि मैं अपने घर निर्देशिका में दो संस्करण) डेटा मैं के कुछ जीबी खींच लेंगे क्लोनिंग पहले से ही है। मैं या तो इसे एक निश्चित स्थान पर रखना चाहता हूं [एक नियम निर्धारित करें कि डेटा ~/डेटा में होना चाहिए] या आवश्यकतानुसार लिंक जोड़ें।
- भंडार में डेटा के साथ, अंगूठे ड्राइव की प्रतिलिपि असंभव हो सकती है, जो परेशान है जब मैं सिर्फ सौ पंक्तियों पर काम कर रहा हूं।
- यदि कोई गलत डेटा बिंदु तय किया गया है, तो मैं कभी भी गलत संस्करण को फिर से देखने वाला नहीं हूं। डेटा सेट में परिवर्तन को सादा पाठ फ़ाइल में या उस व्यक्ति द्वारा ट्रैक किया जा सकता है जिसने डेटा प्रदान किया है (या बिल्कुल नहीं)।
ऐसा लगता है कि मुझे कोड के लिए मुख्य भंडार और डेटा के लिए एक सहायक भंडार के साथ एक सेटअप की आवश्यकता है। गिट के भीतर या POSIX में बड़े पैमाने पर इसे लागू करने के लिए कोई सुझाव या युक्तियां? मैंने जो कुछ भी सोचा है वह एक तरफ है या दूसरा एक झुकाव है।
लिंक पुराना है। मुझे लगता है कि यह http://git-scm.com/book/en/v2/Git-Tools-Submodules अब होना चाहिए। –
किया गया। टिप्पणी के लिए धन्यवाद। –
मैं तर्क दूंगा कि बड़े डेटासेट को बनाए रखना, विशेष रूप से यदि वे नहीं बदलते हैं, तो गिट में अधिक मात्रा में है। गिट के बाहर डेटासेट को रखना, और स्रोत से डेटा कॉपी या wget करने के लिए एक साधारण स्क्रिप्ट का उपयोग करना इष्टतम होगा। – cpbills