मैं अपने वर्कफ़्लो में संस्करण नियंत्रण कैसे जोड़ूं?


11

मैं थीम विकसित करता हूं, उनमें से बहुत सारे। मुझे एक PSD दिया गया है, HTML / CSS को कोड करें, वर्डप्रेस में कोड को थप्पड़ मारें, और क्यूसीएएलडी प्राप्त करते हुए सुधार करें। एक बार लाइव होने के बाद, क्लाइंट सामान्य पोस्ट की तरह ब्लॉग पोस्ट को संपादित कर सकते हैं या कस्टम प्लगइन का उपयोग करके फोटो अपलोड कर सकते हैं।

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

Git और Mercurial का सुझाव दिया गया है, और मैं इन साधनों का लाभ उठाना चाहूंगा, लेकिन मैं उलझन में हूं कि उन्हें वर्कफ़्लो में कैसे फिट किया जाए।

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


मुझे लगता है कि यह एक बाहर के पारिस्थितिकी तंत्र के प्रश्न के रूप में योग्य है। जारी चर्चा के लिए यहां देखें
चिप बैनेट

4
@ChipBennett मैं असहमत हूँ। थीम, प्लगइन्स और डेटाबेस के बीच वर्डप्रेस की विशिष्ट निर्भरता और वे सामान्य डेवलपर अभ्यास को कैसे प्रभावित करते हैं, इसका स्वागत है।
FUXIA

@toscho मैं निश्चित रूप से उस के बारे में आश्वस्त हो सकता है; इसलिए मैंने मेटा चर्चा की ओर इशारा किया। :)
चिप बैनेट

जवाबों:


9

सबसे पहले, आपको यह पहचानने की आवश्यकता है कि यहां दो वर्कफ़्लोज़ हैं: आपका और आपका क्लाइंट।

आपका वर्कफ़्लो

  • PSD प्राप्त करें
  • कोड HTML / सीएसएस
  • कोड वर्डप्रेस टेम्पलेट
  • वर्डप्रेस साइट को लाइव करने के लिए विषय को तैनात करें

उनका वर्कफ़्लो

  • आवश्यक परिवर्तन करें और आपको ईमेल करें
  • पोस्ट लिखें
  • तस्वीरें अपलोड करें

समस्या

यहां संस्करण नियंत्रण को लागू करने का आपके ग्राहकों के वर्कफ़्लो से कोई लेना-देना नहीं है। यह वर्डप्रेस थीम के लिए आपके द्वारा उपयोग किए जाने वाले कोड का ट्रैक रखने के बारे में है । आपकी सभी थीम फाइलें, कस्टम प्लगइन्स, आदि एक संस्करण नियंत्रण प्रणाली (Git, Mercurial, Subversion, या जो भी आप उपयोग करना चाहते हैं) में होना चाहिए।

आपका वर्कफ़्लो तब बन जाता है:

  • कोड लिखें
  • संस्करण नियंत्रण प्रणाली में परिवर्तन करें
  • पुश उत्पादन साइट में परिवर्तन
  • क्लाइंट से टिप्पणी वापस लें
  • कोड लिखें
  • प्रतिबद्ध बदलाव
  • कोड लिखें
  • प्रतिबद्ध बदलाव
  • पुश उत्पादन साइट में परिवर्तन

याद रखें, यह आपके कोड के लिए एक संस्करण नियंत्रण इतिहास बनाए रखने के बारे में है । कोड एक ऐसी चीज़ है जिसे आपके ग्राहकों को बदलना नहीं चाहिए - और आपको उत्पादन के समय कोड को कभी भी किसी उत्पादन साइट पर नहीं बदलना चाहिए ।

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

कोड विकास से उत्पादन में परिवर्तन करता है
डेटाबेस परिवर्तन उत्पादन से विकास तक आते हैं।


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

@ इमान शानदार प्रतिक्रिया, धन्यवाद! आपके द्वारा बताए गए वर्कफ़्लो में मैं केवल वही चीज़ जोड़ूंगा जो कोड लिखना, बदलाव करना, डेवलपमेंट साइट पर पुश करना, क्लाइंट से कमेंट्स प्राप्त करना होगा ... मैंने दो अलग-अलग वर्कफ़्लोज़ पर विचार नहीं किया था क्योंकि नियमित रूप से हमें बदलना होगा। ग्राहकों के लिए खुद को सामग्री। कभी-कभी हमें सामग्री के भीतर विशेष अनुरोधों (विशेष शैलियों, आदि) के लिए समायोजित करने के लिए HTML में सामग्री डालनी होगी। कभी-कभी उन्हें लाइव जाने से पहले क्लाइंट की मंजूरी की आवश्यकता होती है, यही वजह है कि डेटाबेस को सिंक करने की आवश्यकता होती है। क्या इस तरह के सेटअप के लिए सर्वोत्तम अभ्यास हैं?
19

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

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

3
अभी तक नहीं है, क्या यह वास्तव में वर्डप्रेस के पक्ष में एक कांटा है लेकिन विशेष रूप से एक वर्डप्रेस समस्या नहीं है क्योंकि कई सीएमएस की यह समस्या है, आप इसके बारे में यहां पढ़ सकते हैं wordpress.stackexchange.com/questions/119/… अधिक गहराई में, कुछ स्क्रिप्ट वहाँ मौजूद हैं, लेकिन उनमें से ज्यादातर घर में हैं क्योंकि वे एक निश्चित वातावरण के लिए विशिष्ट हैं।
व्येक

1

आप सॉफ्टवेयर का उपयोग कर सकते हैं जो डेटाबेस को सिंक करता है। लेकिन डेटा को स्वयं के साथ समकालिक करने का भी विकल्प है जैसे कि http://chronicdb.com


यह दिलचस्प लग रहा है; काफी कुछ मुद्दों को हल कर सकते हैं। मैं यह जाँच करने के लिए जा रहा हूँ, धन्यवाद।
cfree

1

मैंने अभी एक और प्रश्न पर इसका पूर्ण उत्तर लिखा है । व्यक्तिगत रूप से मैं गिट का उपयोग करता हूं और यह शानदार है। इसके साथ शुरू होने के संदर्भ में, मैं http://gitref.org/ और http://help.github.com/mac-set-up-git/ की जाँच करने की सलाह दूंगा । आप किताब प्रकार कर रहे हैं, मैंने पढ़ा है यह एक और यह निश्चित रूप से $ 22 ebook कीमत के लायक है। अपने आप को करें, आपको उस निर्णय पर पछतावा नहीं होगा।


धन्यवाद, मुझे इसे वापस संदर्भित करना होगा। मास्टर / दास डेटाबेस सेटअप दिलचस्प लगता है। मार्गदर्शन के लिए धन्यवाद
cfree
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.