मैं एक पैकेज में बदलाव करना चाहता हूं, इसका परीक्षण करूंगा और उम्मीद है कि बाद में एक पुल अनुरोध प्रस्तुत करूंगा। मैं इसे सुरक्षित और कुशल तरीके से कैसे करूं? प्रश्न बहुत व्यापक लग सकता है, मैं निम्नलिखित मुद्दों को कवर करने वाले उत्तर को स्वीकार करूंगा:
मैं एक पैकेज की एक अलग शाखा स्थापित करने की उम्मीद करूंगा और जब यह आवश्यक हो तो पुन: स्थापन के साथ इसे और एक स्थिर पर स्थिर शाखा के बीच स्विच करने में सक्षम होगा, लेकिन
package.el
ऐसा करने के लिए एक सीधा रास्ता प्रदान नहीं करता है। एमएसीएस-एसई पर यह उत्तर हमें सूचित करता है कि "यदि पैकेज की कई प्रतियां स्थापित की जाती हैं, तो पहले एक लोड होगी" इसलिए मुझे लगता है कि कोई मैन्युअल रूप से गड़बड़ी कर सकता हैload-path
लेकिन यह मजबूत महसूस नहीं करता है। स्थापित किए गए लोगों के बीच पैकेज के एक विशिष्ट संस्करण का चयन करने का मानक तरीका क्या है?भले ही मैं Emacs को कई शाखाओं को उजागर करने का प्रबंधन करता हूं, महत्वपूर्ण बदलावों के लिए मुझे यह सुनिश्चित करने की आवश्यकता है कि अप्रकाशित शाखा "अनलोड" है और इसके साइड-इफेक्ट अलग-थलग हैं। क्या
unload-feature
यह ठीक से संभालता है या हो सकता है कि इसके पास कई प्रकार के पैकेज हैं जिनके बारे में मल्टी-वर्जन पैकेज के प्रत्येक परीक्षक को पता होना चाहिए?मैं स्थानीय संस्करण कैसे स्थापित और परीक्षण करूं? यह उत्तर इस बात पर निर्भर करता है कि पैकेज सरल है (= एक फ़ाइल) या बहुस्तरीय। EmacsWiki मल्टीफाइल पैकेज के बारे में कहता है: “ MELPA आपके लिए पैकेज बनाता है ”। मुझे संदेह है कि मुझे हर बार MELPA से बात करनी चाहिए (या होनी चाहिए),
defun
लेकिन मैं एक मल्टीफ़ाइल पैकेज में एक फॉर्म को बदल देता हूं लेकिन सवाल बना रहता है। कम से कम मुझे पैकेज प्रबंधक को स्थानीय संस्करण के बारे में बताने की आवश्यकता है, और यदि हां, तो मैं इसे कैसे करूं?मुझे संकुल के स्थानीय संस्करणों में कौन से नाम निर्दिष्ट करने चाहिए? मान लीजिए कि मैं एक साथ कई विशेषताओं या बग्स पर काम करना चाहता हूं, जिसका अर्थ है कई शाखाएँ। Emacs एक वर्णनात्मक तरीके से (लाइनों के साथ
20170117.666-somebugorfeature
) नामों का नाम नहीं देगा । मुझे लगता है कि मैं अपने आप को पैकेज का नाम बदल सकता हूं, प्रति शाखा प्रत्यय, लेकिन फिर से,load-path
Q1 में मैन्युअल रूप से गड़बड़ी की तरह , यह एक बदसूरत हैक है, इसलिए मैं इसे कुछ के साथ आज़माने की कोशिश नहीं करूंगा जब तक कि यह एक व्यापक रूप से स्वीकृत अभ्यास न हो। ।
सवाल शायद भोले हैं, क्योंकि मैंने कभी भी एक पैच नहीं लिखा और न ही गिट या इसी तरह के vcs के साथ आवेदन किया। हालाँकि, बहुत से Emacs उपयोगकर्ताओं के लिए, Emacs पैकेज को पैच करना उनका पहला (या शायद केवल एक) सामाजिक प्रोग्रामिंग प्रयास हो सकता है, यही कारण है कि, मेरा मानना है कि इस प्रश्न के उत्तर अभी भी मूल्यवान होंगे।
emacs -L
एक पैकेज के स्थानीय संस्करण को लोड करने के लिए दृष्टिकोण का उपयोग कर रहा हूं जो मैंने कास्क का उपयोग करके विश्व स्तर पर भी स्थापित किया है। एक बात जो मुझे खटकती थी, वह यह कि<package>-version
हमेशा विश्व स्तर पर स्थापित संस्करण को वापस लौटाया जाता है, तब भी जब मैं वास्तव में स्थानीय संशोधित संस्करण चला रहा था। यह पता चला है क्योंकि<package>-version
इस पैकेज के लिए संस्करण से मिलता हैpackages.el
।