क्या संस्करण नियंत्रण प्रणाली सभी पहलुओं का प्रबंधन कर सकती है? [बन्द है]


17

कुछ महीने पहले मैंने तोड़फोड़ और जीआईटी में खोदा था और निराश था। वे SOURCE CODE को ठीक से संभालते हैं लेकिन अन्य पहलुओं को नहीं। उदाहरण के लिए, संस्करण नियंत्रण के तहत एक वेब साइट को फ़ाइल / निर्देशिका स्वामित्व, फ़ाइल / निर्देशिका पढ़ने और लिखने, एक्सेस कंट्रोल लिस्ट, टाइमस्टैम्प, डेटाबेस सामग्री का प्रबंधन करने की आवश्यकता होती है। और बाहरी लिंक। क्या एक संस्करण नियंत्रण प्रणाली है जो एक महीने पुराने बैकअप से पुन: लोड करने के रूप में एक सही उलट कर सकती है?


12
ऐसा लगता है जैसे आप इसके बजाय एक बैकअप सिस्टम चाहते हैं?
मैके

2
क्या आपने मैक पर OS X के तहत अपनी वेब साइट चलाने पर विचार किया है? टाइम मशीन शायद वर्तमान में उपलब्ध सबसे सरल बैकअप समाधान है और यदि आवश्यक हो तो इसे वापस रोल करना बहुत आसान है।

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

इस तरह की चीजों को संभालने के लिए थोड़ी सी स्क्रिप्टिंग के बारे में क्या गलत है जो scm हैंडल नहीं करता है? इस तरह से आपको वह मिलता है जो आप चाहते हैं और इसे स्रोत नियंत्रण में प्राप्त करते हैं।
न्यूटोपियन

जवाबों:


44

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

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

वेब साइटों के लिए प्रवेश की अनुमति आमतौर पर काफी सरल है। (मूल रूप से, आपको यह सुनिश्चित करने की आवश्यकता है कि वेबसर्वर सभी सामग्री को पढ़ सकता है और इसके बारे में बहुत कम लिख सकता है।) कुछ निर्देशिकाओं के निर्देशिका स्वामित्व के अपवाद के साथ, जिन्हें वेब-सर्वर तोड़फोड़, और संभवतः गिट की आवश्यकता हो सकती है। अनुमतियाँ संभालें। वेब-सर्वर द्वारा राइट किए जाने वाले निर्देशिकाएँ में आमतौर पर डायनामिक कंटेंट होते हैं (वेब-साइट से निर्मित और अपडेट किए गए), जिन्हें वेब-साइट स्रोत से अलग से प्रबंधित किया जाता है।

अगर मुझे आपकी वेब-साइट पर जटिल अनुमति और एसीएल के साथ एक वेब-साइट के साथ काम करने के लिए कहा जाता है, तो मुझे वेब-साइट के प्रबंधन के लिए उपयोग की जाने वाली प्रक्रिया के बारे में गंभीर चिंता होगी। एक संस्करण नियंत्रण प्रणाली को लागू करना और ACL को उस पर ले जाना एक ऐसा समाधान होगा, जिस पर मैं गंभीरता से विचार करूंगा।

डायनामिक सामग्री, जैसे ब्लॉग प्रविष्टियाँ या टिप्पणियां, आमतौर पर साइट बनाने के लिए उपयोग किए जाने वाले संस्करण नियंत्रण के बजाय डेटाबेस या अन्य डेटास्टोर में समाहित होती हैं। डेटा स्टोर को सामग्री का संस्करण नियंत्रण प्रदान करने के लिए व्यवस्थित किया जा सकता है (जैसा कि यह सॉफ़्टवेयर है)। कई विकी संशोधन को ट्रैक करने के लिए एक संस्करण नियंत्रण प्रणाली का उपयोग करते हैं।

संपादित करें:

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

इन समस्याओं को साइट को एक संस्करण नियंत्रण प्रणाली में आयात करके और आपकी प्रक्रिया को बदलकर नियंत्रित किया जा सकता है ताकि मास्टर साइट को उस प्रणाली के माध्यम से अपडेट किया जाए। (ए), (बी), और (सी) को सीधे संस्करण नियंत्रण द्वारा नियंत्रित किया जाता है। आप (c) कार्य को बेहतर बनाने के लिए रिलीज़ को टैग करना चाह सकते हैं। (डी) आम तौर पर एक मुद्दा नहीं है अगर आपके पास केवल तैनाती प्रणाली है जो आपकी साइट को बदल रही है। मुझे साइट की सामग्री पर एसीएल की आवश्यकता नहीं है।

(ई) को केवल प्रारंभिक निर्माण और प्रमुख परिवर्तनों पर चलाने की आवश्यकता है। इसमें वह स्क्रिप्ट भी शामिल हो सकती है जो संस्करण नियंत्रण से साइट को अपडेट करती है और अक्सर चलती है। जब आप एवरेज कंट्रोल सिस्टम में साइट रखते हैं तो ये स्क्रिप्ट काफी सरल होती हैं।

लेकिन किसी ने ऐसा करने के लिए एक सामान्य प्रणाली क्यों नहीं बनाई है?

क्योंकि यह आवश्यक नहीं है यदि आप एक संस्करण नियंत्रण प्रणाली का उपयोग करते हैं।

एक संस्करण नियंत्रण प्रणाली COULD यह सब सामान ट्रैक करता है, लेकिन कोई भी नहीं करता है।

सीवीएस और सबवर्सन दोनों ट्रैक करते हैं कि अगर आप उनका उपयोग कर रहे हैं तो आपको क्या ट्रैक करना होगा। वे उस चीज़ को ट्रैक नहीं करेंगे जिसे आपको ट्रैक करने की आवश्यकता है क्योंकि आप एक संस्करण नियंत्रण प्रणाली का उपयोग नहीं कर रहे हैं, न ही उन्हें करना चाहिए। जब आप एक संस्करण नियंत्रण प्रणाली का उपयोग कर रहे होते हैं, तो उन्हें ट्रैक करने की आवश्यकता होती है।

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

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


शुरू से गलत होने के कारणों में से fleshing के लिए +1।
मैके

2
+1 फिर भी, यह अच्छा है कि प्रश्न पूछा गया है ताकि अन्य आपके उत्तर से लाभान्वित हो सकें।
जैतून-क्लेयर

एक संस्करण नियंत्रण प्रणाली मुझे यह कहने की क्षमता देने वाली है कि "ठीक है, यहाँ पर इस अन्य कंप्यूटर पर, मुझे 28 जुलाई तक साइट का निर्माण करना चाहिए।" संस्करण नियंत्रण बैकअप की तुलना में अधिक कुशल है क्योंकि यह परिवर्तनों को ट्रैक करता है। अन्यथा, हाँ, एक दैनिक बैकअप ठीक काम करेगा।
एंडी कैनफील्ड

हां, मैं जो फिक्स का उपयोग कर रहा हूं, वह (ए) बिल्कुल भी संस्करण नियंत्रण नहीं है, (बी) उत्पादन साइट मास्टर साइट है, (सी) हर बार कुछ भी बदलने के लिए पुरालेख, (डी) संग्रह स्क्रिप्ट एसीएल की तरह कबाड़ को हटा देती है, और ( ई) स्थापित स्क्रिप्ट फ़ाइल अनुमतियों की तरह अन्य कबाड़ को ठीक करता है। लेकिन किसी ने ऐसा करने के लिए एक सामान्य प्रणाली क्यों नहीं बनाई है? एक संस्करण नियंत्रण प्रणाली COULD यह सब सामान ट्रैक करता है, लेकिन कोई भी नहीं करता है।
एंडी कैनफील्ड

+1: शानदार जवाब। लेकिन मैं यह जोड़ना चाहूंगा कि कोई भी संस्करण नियंत्रण प्रणाली उस सामान को ट्रैक नहीं करती है क्योंकि वे COULDN'T हैं। अनुमतियाँ और उपयोगकर्ता नाम होस्ट-विशिष्ट हैं और उनका प्रारूप सिस्टम-विशिष्ट है; कोई तरीका नहीं है कि उपकरण स्वचालित रूप से उन्हें अलग-अलग होस्ट में पोर्ट कर सके, खासकर जब यह अलग ऑपरेटिंग सिस्टम हो।
Jan Hudec

10

उनमें से सभी और उनमें से कोई भी नहीं।

जिस तरह से आपके सवाल का इरादा है, उन विवरणों को सीधे प्रबंधित करने के लिए स्रोत नियंत्रण प्राप्त करना एक बुरा विचार है।

हालाँकि, आप एक बैश स्क्रिप्ट (* nix) या पॉवरशेल स्क्रिप्ट (Windows) लिख सकते हैं, जो उन सभी लक्ष्यों को प्राप्त करता है। इस स्क्रिप्ट को स्रोत नियंत्रण में संग्रहीत किया जा सकता है।

फिर आप उस स्क्रिप्ट को अपनी बिल्ड आर्टिफैक्ट्स में से एक बना सकते हैं और इसे अपनी तैनाती के हिस्से के रूप में चला सकते हैं।


इस। सभी स्रोतों के होने का विचार यह है कि आप उन्हें अपने VCS से बाहर निकाल सकते हैं और तैयार उत्पाद बनाने के लिए उनका उपयोग कर सकते हैं।
Blrfl

2

IMHO अपने आप में एक संस्करण नियंत्रण प्रणाली का उपयोग उस तरह से करने का इरादा नहीं है।

लेकिन मैं जो करना चाहता हूं वह यह सुनिश्चित करने के लिए है कि आपको स्रोत नियंत्रण से एक संस्करण मिल सकता है जिसे आपको केवल एक बिल्ड फ़ाइल / पॉवरशेल फ़ाइल चलाने की जरूरत है और सब कुछ फिर से चल रहा है।

इसके लिए आपको निम्न करना होगा:

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

1

मेरा मानना ​​है कि आपके मामले में आपको जो चाहिए वह एक कॉन्फ़िगरेशन प्रबंधन उपकरण है। जो मैंने उपयोग किया है वह कठपुतली है

आपको उद्धृत करते हुए:

फ़ाइल / निर्देशिका स्वामित्व का प्रबंधन करें, फ़ाइल / निर्देशिका पढ़ें और लेखन पहुँच,

मैंने ऐसा किया है कि एक पंक्ति के साथ (सुनिश्चित करें कि उपयोगकर्ता मौजूद है, सुनिश्चित करें कि निर्देशिका मौजूद है, आदि) ...

अभिगम नियंत्रण सूची,

यदि यह विंडोज़ ACL है तो खिड़कियों के लिए विशिष्ट CM उपकरण हैं ...

टाइम स्टांप,

फिर से कठपुतली लिपि में एक लाइन में स्पर्श यूनिक्स कमांड आपके लिए यह कर सकता है।

डेटाबेस सामग्री।

यह कई रूपरेखाओं में निर्मित है, एक क्रॉन जॉब जो यह सुनिश्चित करता है कि सब कुछ अन्यथा है?

और बाहरी लिंक।

उसके बारे में कुछ नहीं जानते।

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


मुझे समझ नहीं आ रहा है कि "टाइमस्टैम्प्स" से आपका क्या मतलब है - कठपुतली लिपि में एक पंक्ति में एक यूनिक्स कमांड ऐसा कर सकता है "। मेरी साइट पर, साइट संस्करण प्राप्त करने के लिए, यह पूरी साइटेट्री को स्कैन करता है और नवीनतम फ़ाइल की तारीख और समय लौटाता है। मैं चाहता हूं कि मेरे संस्करण का नियंत्रण "चेकआउट" हो, ताकि फाइलों को उसी टाइमस्टैम्प के रूप में दिया जा सके जैसा कि उन्होंने चेकइन में था, अब 'सेट' के रूप में सेट नहीं किया है। आप एक यूनिक्स कमांड में कैसे करते हैं?
एंडी कैनफील्ड

बेशक, आप "टच" की तलाश कर रहे हैं, यह जांचें: en.wikipedia.org/wiki/Touch_(Unix) । आम तौर पर जब चेक-आउट किया जाता है तो अब समय लागू किया जाएगा, लेकिन अगर किसी कारण से आप एक अलग टाइमस्टैम्प चाहते हैं तो यह कैसे करना है।
दिमित्रीज मिस्ट्रियस २०'११

मुझे वास्तव में आपके सवाल का औचित्य पसंद आया, आप जितना संभव हो उतना स्वचालित करना चाहते हैं, जो कि "सही तरीका" है, आपको कुछ पता होना चाहिए कि यह कैसे करना है और वीसीकंट्रोल में क्या होता है और क्या नहीं। काश बाहर के उद्योग में और लोग एक जैसे सोच रहे होते ...
दिमित्री मिस्ट्रीस

0

एक अंतिम संस्करण नियंत्रण प्रणाली है जो सभी डिजिटल दस्तावेजों के सभी पहलुओं का प्रबंधन करती है। इसे Xanadu कहा जाता है और 1960 में थियोडोर होल्म नेल्सन द्वारा बनाया गया था , इससे पहले भी फाइल सिस्टम जैसी चीजें आम थीं। इसलिए सिद्धांत रूप में सब कुछ पूरी तरह से हल है। व्यवहार में, Xanadu को नेल्सन द्वारा कल्पना के रूप में कभी लागू नहीं किया गया था, लेकिन इसने वेब और संस्करण नियंत्रण प्रणालियों सहित कई और विशिष्ट प्रणालियों को प्रेरित किया। नेल्सन के काम अभी भी एक ताजा पढ़ने के लायक हैं - और वे इस सवाल का जवाब दे सकते हैं कि कोई सामान्य वीसीएस क्यों नहीं है जो सभी पहलुओं का प्रबंधन करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.