एक विशिष्ट विरूपण साक्ष्य प्रबंधन उपकरण बनाम एक विरूपण साक्ष्य भंडार के रूप में तोड़फोड़ का उपयोग करना


19

TL; DR: Apache Archiva या Sonatype Nexus जैसी कुछ चीज़ों को तोड़फोड़ की जगह एक आर्टिफिशियल रिपॉजिटरी के रूप में क्यों इस्तेमाल किया जाता है?

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

मैं इसे समेकित कर रहा हूं, इसलिए हमारे पास कुछ ऐसा है जो अधिक आत्मनिर्भर और उपयोग करने में आसान है, और जो बाइनरी कलाकृतियों को कोड से अलग करता है।

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

इसलिए। सामान्य संस्करण नियंत्रण उपकरण जैसे कि सबवर्सन का उपयोग करने पर समर्पित आर्टिफिशियल मैनेजमेंट सिस्टम का उपयोग करने का क्या फायदा है?


अब तक एक समर्पित उपकरण का उपयोग करने का सबसे बड़ा फायदा यह है कि अन्य उपकरण उन्हें संभालना जानते हैं ! वे उन उपकरणों में कलाकृतियों को रख सकते हैं और उन्हें एक स्वचालित फैशन में वापस ले सकते हैं।
जोआचिम सॉयर

जवाबों:


13

संक्षिप्त उत्तर: आम तौर पर, आपको द्विआधारी कलाकृतियों के इतिहास और उन कलाकृतियों में परिवर्तन की आवश्यकता नहीं होती है, आपको बस विशिष्ट संस्करणों की आवश्यकता होती है।

लंबे समय तक उत्तर: हर बार जब आप एक बाइनरी फ़ाइल में एक छोटा सा बदलाव करते हैं, तो संस्करण नियंत्रण प्रणालियों के पास डेल्टा बनाने का कोई तरीका नहीं होता है - दो फाइलों के बीच एक अंतर - इसलिए यह एक पूरी नई प्रतिलिपि बनाता है।

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

और यह आपको दर्द के बदले में क्या देता है? केवल एक चीज जो यह प्रदान करती है, वह आपके भंडार के पिछले संस्करण में वापस जाने में सक्षम है और यह जानती है कि आपके पास उस संस्करण के लिए सही बायनेरी है।

लेकिन क्या आपको ऐसा करने के लिए अपने भंडार में पूरे द्विआधारी की आवश्यकता है? या फिर आप एक पाठ फ़ाइल होने के साथ दूर हो सकते हैं, निर्माण प्रक्रिया को बता सकते हैं कि कौन से संस्करण किसी अन्य भंडार से खींच सकते हैं?

उत्तरार्द्ध आमतौर पर विरूपण साक्ष्य रिपॉजिटरी द्वारा पेश किया जाता है।

इसके अलावा, कुछ अधिक पेशेवर लोग, जैसे कि नेक्सस, आपको तीसरे पक्ष की कलाकृतियों के लिए लाइसेंस देने के बारे में भी जानकारी देंगे, ताकि आप FOSS पुस्तकालय होने का विश्वास करते हुए कुछ सूक्ष्म खंडों के गिरने का जोखिम न लें।


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

@me_and: आप ऐसा कर सकते हैं। लेकिन फिर आपको यह प्रबंधित करना है कि कौन सा संशोधन कलाकृतियों के किस संस्करण को प्रदान करता है। जब कोई कलाकृति रिपॉजिटरी आपके लिए करती है तो अपने आप को वह अतिरिक्त काम क्यों दें? यह कहने जैसा है कि "तो मैं अपने कोड को लिखने के लिए नोटपैड का उपयोग कर सकता हूं? फिर ग्रहण से परेशान क्यों?" इसके अलावा, आप अंतरिक्ष को बचाने के लिए पुराने संस्करणों को वास्तव में हटाने में सक्षम नहीं होंगे। आप एक विरूपण साक्ष्य भंडार के साथ कर सकते हैं।
पीडीआर

1
@Pdr द्वारा उत्तर पर जोर देने और विस्तार करने के लिए, यदि आप svn को एक द्विआधारी विरूपण साक्ष्य रिपॉजिटरी के रूप में उपयोग करने के लिए थे, तो आप संभवतः संग्रहण समस्याओं में भाग लेंगे क्योंकि svn को कभी भी डेटा को हटाने के लिए नहीं बनाया गया है। एक जगह मैंने काम किया हमने कलाकृतियों के भंडारण के लिए svn का उपयोग किया, और हम नियमित रूप से भंडारण की सीमा को पार कर गए क्योंकि यह स्टोर से पुरानी अप्रयुक्त कलाकृतियों को हटाने के लिए कठिन (असंभव नहीं, लेकिन मुश्किल) था। आर्टिफैक्ट और नेक्सस जैसे नेटिव बाइनरी रिपॉजिटरी टूल्स अनावश्यक कलाकृतियों को हटाने की अनुमति देते हैं।
मैथ्यू स्केल्टन

3
सुधार: तोड़फोड़ आंतरिक रूप से द्विआधारी डेल्टा का उपयोग करता है (और AFAIK केवल उन)। मैंने कई साल पहले एमएस ऑफिस की फाइलों को संग्रहीत करने के लिए प्रयोग किए थे और यह बेहद प्रभावी था। रिपॉजिटरी का आकार बहुत धीरे-धीरे बढ़ा, यहां तक ​​कि जब 200 पावरफुल स्लाइड्स पर फिर से भारी फेरबदल किया गया। लेकिन बाइनरी डेल्टा एल्गोरिथ्म की प्रभावशीलता फ़ाइल प्रकार से बहुत भिन्न होगी और मुझे लगता है कि अवधारण नीति की कमी यहां वास्तविक मुद्दा है (कुछ आप एक फ़िल्टर किए गए डंप / लोड के साथ काम कर सकते थे, लेकिन फिर आप अपना समाधान लिखना शुरू करते हैं)।
पीटर बेकर

"संस्करण नियंत्रण प्रणालियों के पास डेल्टा बनाने का कोई तरीका नहीं है" - समस्या यह है कि वे ठीक यही करते हैं - 2006 के बाद से ... subversion.apache.org/docs/release-notes/1.4.html#svndiff1 en.wikipedia। org / wiki / Xdelta
RnR

1

हम SVN का उपयोग रिलीज़ बिल्ड के लिए भंडार के रूप में करते हैं और यह बहुत अच्छा करता है। हमारे पास एक रिलीज़ रिपॉजिटरी है जो विभिन्न रिलीज़ बिल्ड के 30gb से बेहतर है और यह तैनाती के लिए अच्छी तरह से पुलिंग का प्रदर्शन करती है।

ऐसा करने के कुछ फायदे हैं ।।

  • एसवीएन में जोड़े गए बीवियों को एवीजी सेविंग स्पेस पर लगभग 60-70 प्रतिशत संकुचित किया जाता है।
  • SVN रिलीज़ के लिए एक पुस्तकालय (आर्टिफैक्टिक) के रूप में कार्य करता है और आपदा रिकवरी प्रयोजनों के लिए भंडार का बैकअप लिया जाता है।
  • SVN के माध्यम से https एक DMZ में रिलीज कोड के सुरक्षित वितरण के लिए अनुमति देता है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.