2012-08-10 21 views
10

हैलो मैं थोड़ी देर के लिए इस पर घूमने का मतलब रहा हूं, लेकिन मैं कुछ टाइपो 3 विकास साइटों को बनाए रखने के लिए गिट का उपयोग करना चाहता हूं। मैंने कुछ खुदाई की और सबसे अधिक जानकारीपूर्ण (chromium translated site) विषय पर जानकारी स्पष्ट नहीं है लेकिन मुझे ऐसा लगता है। मैं जानना चाहता हूं कि एक गिट प्रबंधित रेपो कैसे स्थापित करें और यदि कुछ/अन्य फ़ोल्डर्स हैं जिन्हें रेपो सेट करते समय मुझे अनदेखा करना चाहिए, मुझे क्या करना चाहिए, सर्वोत्तम प्रथाओं आदि। मैंने फैसला किया है कि प्रत्येक संस्करण के साथ , एक डीबी डंप अलग से किया जाएगा जो मील का पत्थर से मेल खाता है क्योंकि अब तक मुझे यकीन नहीं है कि सीएमएस संस्करण के इस पहलू से कैसे निपटें।गिट का उपयोग कर TYPO3 इंस्टॉलेशन का प्रबंधन कैसे करें?

+1

लिंक मर गया, शायद वैसे भी पुराना है, लेकिन यहां शेष है: http://web.archive.org/web/20130706031806/http://www.chmuul.net/2010/02/saubere- गिट-रिपॉजिटरीज़-फर-टाइपो 3-प्रोजेक्ट –

उत्तर

18

है ठेठ .gitignore

/fileadmin/user_upload/ 
/fileadmin/_temp_/ 

/uploads/ 

/typo3conf/temp_CACHED* 
/typo3conf/temp_fieldInfo.php 
/typo3conf/localconf_local.php 

/typo3/ 
/t3lib/ 
/typo3temp/ 

ध्यान रखें कि आप Extension Manager साथ रिमोट पर कोई भी एक्सटेंशन इंस्टॉल नहीं करना चाहिए जब git साथ TYPO3 का उपयोग कर रहा है!

इसके बजाय स्थानीय रूप से बाहर आयात करें, इसे स्थानीय रूप से इंस्टॉल करें और फिर ext की फ़ाइलों को प्रतिबद्ध और धक्का दें और दूरस्थ सर्वर पर localconf.php संशोधित करें।

localconf.php के अंत में localconf_local.php (ध्यान नहीं दिया)

@include('localconf_local.php'); 

यह ओवरराइड करने के लिए यानी की अनुमति देगा शामिल हैं। मूल localconf.php को बदले बिना डीबी के लिए प्रमाण पत्र, या कस्टम ImageMagick पथ। पाठ्यक्रम की टीम में प्रत्येक देव अपने मूल्यों को localconf_local.php पर लिखता है।

.gitignore में अनदेखा विशिष्ट TYPO3 फ़ोल्डर्स प्रत्येक उदाहरण यानी मैन्युअल रूप से बनाया जाना चाहिए।

typo3temp

fileadmin/user_upload

बेशक

आप भी डाउनलोड Typo3 sorces (typo3, t3lib फ़ोल्डर) की जरूरत है - कोई बड़ा उन्हें संस्करण नियंत्रण में रखने के समझ में नहीं है।

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

+1

आप दोनों को टिप के लिए धन्यवाद। एक बार मैंने इसे कुछ दिनों में सफलतापूर्वक कार्यान्वित करने के बाद एक जवाब स्वीकार कर लिया। –

+1

आपको देखभाल करना चाहिए उदा। "/.git/config" HTTP के माध्यम से सार्वजनिक रूप से खुलासा नहीं किया गया है (मैंने इसे एक सार्वजनिक/सबफ़ोल्डर में टाइपो 3 सामान डालने की आदत बना दी है)। संपादित करें: हाहा, chmuul.net मेरा ब्लॉग है :) यदि आपके कोई और प्रश्न हैं, तो कृपया पूछें। – AaL

+0

अतिरिक्त नोट: मैं देखता हूं कि क्या मैं ट्यूटोरियल को अधिक विस्तृत, फिर से अंग्रेजी में और मेरी कैपिस्ट्रानो रसीद के साथ फिर से लिख सकता हूं। – AaL

10

मैं biesiors के लिए कुछ पहलुओं को बहुत अच्छा जवाब जोड़ना चाहता हूं: मेरे अनुभव से, सबसे अच्छी रणनीति fileadmin/ और typo3conf/ को संस्करण नियंत्रण के तहत रखना है, और पहले कुछ भी नहीं। यदि आप एक्सटेंशन का उपयोग करते हैं, तो आप केवल टीईआर रिपोजिटरी से नवीनतम संस्करण का उपयोग करेंगे। एक्सटेंशन कॉन्फ़िगरेशन (टाइपोस्क्रिप्ट सेटअप, लोकलैंग मान) को बाहरी फाइलों में fileadmin/में रखा जाएगा। उदाहरण फ़ोल्डर संरचना:

fileadmin/ 
- css/ 
- images/ 
- javascript/ 
- scripts/ 
- templates/ 
- - html/ 
- - templavoila/ 
- - typoscript/ 
- - xml/ 

डेटाबेस में किसी typoscript जानकारी स्टोर न करें - यह वहाँ से versioned नहीं जा सकता है।

जगह .gitignore जहां आवश्यक हो। हम typo3conf/ext/ और typo3conf/l10n/ को भी अनदेखा करते हैं। क्यूं कर? अगर हम अपने स्वयं के एक्सटेंशन लिखते हैं (या मौजूदा को संशोधित करते हैं), तो हम typo3conf/ext/my_extensionname/ को अन्य भंडार में जोड़ते हैं। इस तरह, एक्सटेंशन को अच्छी तरह से बनाए रखा जा सकता है, खासकर यदि कई परियोजनाओं में उपयोग किया जाता है।और अपरिवर्तित एक्सटेंशन को बिल्कुल संस्करणित करने की आवश्यकता नहीं है।

@include('localconf_local.php'); सुझाव का पालन करें - यह अच्छा अभ्यास है।

यह सेटअप कोडिंग अनुशासन पर उच्च मांग जोड़ता है, लेकिन आपको पुरस्कृत किया जाएगा! हम दो तरह की टीम में 12 परियोजनाओं के लिए सफलतापूर्वक इस तरह काम कर रहे हैं।

+0

हम वर्तमान में एक संपूर्ण गिट रिपोजिटरी में संपूर्ण ext/निर्देशिका संग्रहीत कर रहे हैं। एक स्वचालित तैनाती प्रक्रियाओं के भीतर भंडारों से सही जगह पर सभी एक्सटेंशन प्राप्त करने के लिए आप किस तकनीक का उपयोग कर रहे हैं? गिट submodules वास्तव में लचीला और प्रशासनिक ओवरहेड बहुत लग रहा है। गिट सबट्री तकनीक का उपयोग करके आप हमेशा एक अलग भंडार में विस्तार को निकाल सकते हैं यदि आप चाहते थे। मुझे लगता है कि विभिन्न भंडारों में सभी एक्सटेंशन संग्रहीत करना इसके लायक से अधिक परेशानी है। ऐसा करने के लिए कृपया मुझे अपने तर्कों के बारे में बताएं। – Ivo

+1

एक गलतफहमी हो सकती है: हम केवल उन एक्सटेंशन को शामिल करते हैं जिन्हें हम स्वयं विकसित कर रहे हैं, अधिकांश परियोजनाओं में केवल एक या दो। अन्य सभी एक्सटेंशन '.gitignore' में' typo3conf/ext/'द्वारा अनदेखा किए जाते हैं – Mateng

संबंधित मुद्दे