2009-12-06 13 views
5

मैं वर्तमान में Emacs के कॉन्फ़िगरेशन परिवर्तनों को ट्रैक करने के लिए उपversण का उपयोग करता हूं और अपनी '.emacs.d' निर्देशिका को विभिन्न प्लेटफ़ॉर्म पर सिंक करने के लिए करता हूं।व्यक्तिगत Emacs कॉन्फ़िगरेशन को ट्रैक और वितरित करने के लिए कौन सा संस्करण नियंत्रण प्रणाली या प्लेटफ़ॉर्म सबसे अच्छा है?

Ido, विचार या संगठन मोड की तरह संकुल का एक बहुत Emacs वितरण जो डेबियन या कार्बन Emacs (OSX) के साथ आते का हिस्सा हैं। लेकिन मैं जिन अन्य पैकेजों का उपयोग कर रहा हूं वे उन वितरणों का हिस्सा नहीं हैं इसलिए मुझे उन्हें अपने व्यक्तिगत उपवर्तन भंडार में मैन्युअल रूप से जोड़ना होगा।

लाभ यह है कि अब मैं अपने पूरे '.emacs.d' विन्यास की जाँच करने के लिए मैं जहाँ भी काम करना चाहता हूँ में सक्षम हूँ है। नुकसान यह है कि मुझे अपडेट के लिए उन पैकेजों को ट्रैक करना होगा और जब भी कोई नया अपडेट उपलब्ध होगा, मुझे मैन्युअल रूप से अपना खुद का भंडार अपडेट करना होगा।

वहाँ 'समुदाय' के लोगों के साथ अपने खुद के विन्यास और संकुल को एकीकृत करने के लिए एक बेहतर तरीका है? मुझे एहसास हुआ कि इस कारण से कई लोगों द्वारा github.com का उपयोग किया जाता है।

मैं बेहतर तोड़फोड़ के बजाय Git का उपयोग करना चाहिए समुदाय के उस के साथ सिंक और मेरे Emacs विन्यास साझा करने के लिए? और क्या इसका मतलब यह है कि मुझे एक्सचेंज और वितरण के संबंध में अन्य Emacs उपयोगकर्ताओं के करीब आने के लिए अपने स्वयं के सबवर्जन सर्वर का उपयोग करने के बजाय github.com पर बेहतर स्विच करना चाहिए?

उत्तर

5

हर बार आपको कुछ "वितरण" मुद्दे से निपटना पड़ता है, तो आप वितरित संस्करण नियंत्रण प्रणाली (डीवीसीएस) पर विचार करना बेहतर हो सकते हैं।

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

इस तरह, आप केवल एक बार ही सही

git submodule update --recursive 

करने की जरूरत है सुनिश्चित करें कि नवीनतम संकुल अपने केंद्रीय विन्यास परियोजना द्वारा संदर्भित हो रही हो।
नोट: उन submodules की पुनरावर्ती प्रारंभ थोड़ा मुश्किल है: यह SO question for more देखते हैं।

+1

सेकेंड - कोई भी डीवीडी (या तो एचजी या गिट) बेहतर होगा। – Almad

+1

तीसरा। ;-) मैंने साल पहले, svn में my.emacs.d के साथ शुरू किया था। यह भयानक नहीं था, लेकिन गिट में स्विचिंग एक बेहतर फिट रहा है। – bendin

+0

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

2

मैं व्यक्तिगत रूप से Emacs फ़ाइलों को संग्रहीत करने के लिए उपयोग करते हैं (और सलाह देते हैं) Git। http://github.com/technomancy/emacs-starter-kit को देखना एक अच्छा विचार होगा। यह कई लोगों द्वारा उपयोग की जाने वाली Emacs फ़ाइलों का एक बड़ा सेट है (600 से अधिक लोग रेपो देख रहे हैं)। चूंकि वे नियमित रूप से अपडेट होते हैं, आपको नए संस्करण मिलते हैं। यह elpa को देखने लायक है जिसका उद्देश्य इमाक्स सामानों के पैकेज प्रबंधन को आसान बनाना है।

आप यह भी देखना चाहेंगे कि मैं अन्य पैकेजों को एक साथ कैसे बदलना चाहता हूं।

How to I combine two separate Git repositories?

2

जबकि मैं मूल रूप से VonC से सहमत हैं, और आभारी है कि वह मेरा ध्यान करने के लिए Git submodules लाया हूँ मैं उन्हें कोई VCS से परिचित लेकिन DVCS के लिए खत्म हो ब्रिजिंग के लिए सिफारिश नहीं होगा। अब मैं पूरी तरह से गिट का उपयोग करके आनंद लेता हूं और इसे दिल से अनुशंसा करता हूं लेकिन उस पुल को पार करने के लिए बहुत सारे काम किए हैं।

सामुदायिक सॉफ़्टवेयर को संबोधित करने के वैकल्पिक तरीकों के रूप में, मैं भी Emacs द्वारा प्रदान किए गए पैकेजों के लिए ELPA की सलाह देता हूं। अपडेट मैन्युअल रूप से लागू किए जाने चाहिए लेकिन कम से कम ईएलपीए आपको एक अद्यतन प्रदान करने के लिए एक तंत्र प्रदान करता है। और यह ईएलपीए द्वारा होस्ट किए गए समुदाय प्रदान किए गए पैकेज को जोड़ने के लिए एक अच्छा मचान भी प्रदान करता है।

आखिरकार, आप विस्तार से विस्तार करना चाहते हैं कि आप मंच पर आधारित अपने पैकेज कैसे व्यवस्थित करते हैं। मैं एम्बेडेड Emacs lisp में अपने सभी प्लेटफार्म (और प्रति-मशीन) अनुकूलन को रखने की कोशिश करता हूं जैसे कि मैं उन सभी प्रमुख प्लेटफ़ॉर्म पर स्रोत नियंत्रित समर्थन (* .el) फ़ाइलों का एक सेट साझा करता हूं: लिनक्स (फेडोरा और उबंटू) , मैक ओएस एक्स और विंडोज (मूल और साइगविन)।

+0

उचित अंक। +1 – VonC

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