कैसे करने के लिए: WordPress प्लगइन सर्वर के लिए एक GitHub रेपो धक्का


21

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

मैंने कुछ स्क्रिप्ट्स को देखा है और कोशिश की है, लेकिन मुझे लगता है कि मुझे उन्हें गलत तरीके से चलाना होगा क्योंकि वे या तो त्रुटि करते हैं या फाइलों पर सही तरीके से कॉपी नहीं करते हैं।

तो मेरा सवाल यह है कि क्या किसी ने इसे स्वचालित रूप से हासिल किया है और यदि ऐसा है तो आपने इसे कैसे किया?

धन्यवाद!


जबकि मुझे लगता है कि यह दिलचस्प और उपयोगी प्रश्न है, यह भी दायरे से बाहर है क्योंकि यह Git और तोड़फोड़ की बातचीत के बारे में है और वर्डप्रेस के लिए इसके बारे में कुछ भी नहीं है। मुझे यह सोचने की ज़रूरत है कि यहां सबसे अच्छी कार्रवाई क्या होगी ...
रार्स्ट

मैंने इस मामले पर चर्चा करने के लिए मेटा पर सवाल शुरू किया है ।
रारस्ट

@ इसके लिए धन्यवाद, प्रश्न गलत करने के लिए खेद है
studioromeo

जवाबों:


1

मेरी टीम के सह-कार्यकर्ता से इस ट्यूटोरियल को देखें: http://www.farbeyondprogramming.com/2011/09/81-how-to-deploy-a-wordpress-plugin-with-git-svn

लेकिन वह समाधान का उपयोग नहीं करता है, इसका काम अलग करना आसान है :(


साभार @bueltge तो क्या मैं यह सोचने में सही हूं कि वह मैनुअल तरीके से लौट आया है?
स्टूडियोरोमो

4
सभी के प्यार के लिए जो पवित्र है, उस साइट पर दिए गए निर्देशों का पालन न करें। यदि आप अचानक हमारे एसवीएन के लिए सैकड़ों आवागमन करते हैं, तो मैं व्यक्तिगत रूप से आपको ढूंढने के लिए अपने जीवन का लक्ष्य बनाऊंगा और आपको छड़ी से हरा दूंगा। या शायद आप WordPress.org से सिर्फ प्रतिबंध लगा सकते हैं। ;) केवल अंतिम संस्करण के लिए प्रतिबद्ध हैं, न कि प्रत्येक और हर एक आपके द्वारा किए गए परिवर्तनों के लिए जो आपने किए थे। हम आपके इतिहास को महत्व देते हैं, लेकिन केवल सार्थक इतिहास को। जीआईटी के साथ समस्या यह है कि लोग बेकार बकवास का भार उठाते हैं, और हमें उस सामान को जानने की जरूरत नहीं है, आम तौर पर बोलना।
ओटो

@ ओटो लोल! नहीं, मैं बस एसवीएन रेपो में अपने परिवर्तनों को तैनात करने में सक्षम होना चाहता हूं। वर्तमान में यह मैन्युअल रूप से मेरे चेक आउट किए गए svn रेपो में फाइलें अधिलेखित करते हैं, लेकिन थकाऊ और त्रुटि प्रवण। क्या तुम्हारे पास कोई सुझाव है?
स्टुडिओरोमो

3
आपके Git परिवर्तनों का एक इंटरैक्टिव रिबेस करने से आप उन्हें एक सिंगल SVN कमिट में संयोजित कर सकते हैं। यह करने के बारे में अधिक जानकारी यहाँ है: stackoverflow.com/questions/158514/…
ओटो

1
@Otto " मुझे नहीं पता, ईमानदारी से, मैं Git का उपयोग नहीं करता हूं। मुझे यह कष्टप्रद लगता है। " एक और उद्धरण के साथ उत्तर दिया जा सकता है (सीधे आप से) " मैं व्यक्तिगत रूप से इसे ढूंढने और आपको हराने के लिए अपने जीवन का लक्ष्य बनाऊंगा " छड़ी के साथ ":)
केसर

1

इन प्रतिक्रियाओं को पढ़ने के बाद, मैंने अपने एक प्लग इन को GitHub में धकेला और एक रिलीज़.श स्क्रिप्ट लिखी। इस स्क्रिप्ट को plugins.svn.wordpress.org का उपयोग करके मेरे प्लगइन का आंशिक चेकआउट किया जाता है --depth immediates, और फ़ाइलों को अंदर trunk/और अपडेट करता है assets/। यह विकास इतिहास को बनाए रखने के बजाय टैग रिलीज के लिए wordpress.org रिपॉजिटरी का उपयोग करके svn को एक आवधिक धक्का को सरल करना चाहिए:

./release.sh
svn cp trunk tags/0.6
svn ci "Sending 0.6 from https://github.com/foo/bar to wordpress.org"

अधिक सामान्य संस्करण प्लगइन्स की एक विस्तृत विविधता के साथ काम कर सकता है, हटाई गई फ़ाइलों को संभाल सकता है, और svn टैग को स्वचालित रूप से गिट टैग से अपडेट कर सकता है।


1

यदि आप इस तरह का काम करने जा रहे हैं, तो कृपया एक इंटरेक्टिव रिबेस करें और फिर सभी कमिट्स को स्क्वीस्ड होने के लिए बदल दें, ताकि आप एसवीएन सर्वर पर दर्जनों छोटे कमिट न करें। ऐसा करने के बारे में अधिक जानकारी यहाँ है: stackoverflow.com/questions/158514/…
ओटो

5
@ ओटो जबकि मैं सर्वर लोड को कम करने की आपकी इच्छा को पूरी तरह से समझता हूं :) मुझे वास्तव में, परमाणु से प्यार है, अगर मुझे अन्य लोगों के कोड को डीबग करना है। हम्म… एक सार्वजनिक लिंक भंडार के लिए एक स्वचालित लिंक एक पूर्ण प्रतिबद्ध इतिहास के साथ प्लगइन निर्देशिका के लिए एक उपयोगी वृद्धि हो सकती है।
FUXIA

3
इस बारे में @Otto से सहमत होंगे। WordPress.org का SVN वास्तव में रिलीज़ रिपॉजिटरी होना चाहिए, न कि डेवलपमेंट रिपॉजिटरी।
माइकस्किंकेल

1

सवाल पुराना था, लेकिन अब समाधान GitHub कार्यों के साथ उपलब्ध है। हाल ही में GitHub ने GitHub रिपॉजिटरी के लिए Github Actions को स्वचालित वर्कफ़्लो जोड़ा।

और जानी मानी कंपनी 10up ने "Action WordPress Plugin Deploy" बनाया।

इसे सेटअप करना बहुत आसान है। और जैसा कि @ लोट्टो का कहना है कि हमें svn को प्रत्येक परिवर्तन को धकेलने की आवश्यकता नहीं है, इसलिए हम गिटहब पर नया टैग बनाते समय स्वचालन सेट कर सकते हैं।

जब हम नया रिलीज़ टैग बनाते हैं, तो हमारा github प्लगइन वर्डप्रेस रिपॉजिटरी में कोड को स्वचालित रूप से धकेल देता है।

उपयोगी कड़ियाँ:


0

मैं इसे स्वचालित रूप से नहीं करता, लेकिन यह बहुत आसान है:

एसवीएन ट्रक और गिट मास्टर को एक ही डायरेक्टरी में देखें। लगभग हर चीज़ के लिए Git का उपयोग करें, क्योंकि कोई भी Git-only प्रोजेक्ट के साथ होगा।

सेट stable tagहोने के लिए trunk, और फिर जब एक रिलीज टैग यह Git में करने के लिए तैयार है, और फिर तुरंत ट्रंक करने के लिए धक्का। एसवीएन को धक्का देने के बारे में चिंता न करें /tags, क्योंकि आपकी रिलीज का इतिहास गिट (और जीथब) में सुरक्षित है।

यह इसके बारे में।

यह साफ करने के लिए, मैं जोड़ने .svnके लिए .gitignore, और .git(और tests/, phpunit.xml, आदि) SVN ने नजरअंदाज कर दिया है।

एक release.sh स्क्रिप्ट वास्तव में निम्नलिखित से अधिक कुछ नहीं होगी (एक बार कोड में संस्करण संख्या अपडेट हो जाने के बाद, और सभी Git के लिए प्रतिबद्ध है:

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