ฉันต้องการแก้ไขแพ็คเกจทดสอบและหวังว่าจะส่งคำขอการดึงภายหลัง ฉันจะทำอย่างปลอดภัยและมีประสิทธิภาพได้อย่างไร คำถามอาจรู้สึกกว้างเกินไปฉันจะยอมรับคำตอบที่ครอบคลุมประเด็นต่อไปนี้:
ฉันคาดว่าจะติดตั้งแยกสาขาของแพ็คเกจและสามารถสลับระหว่างมันและสาขาที่มั่นคงในราชประสงค์ด้วย recompilation ดำเนินการโดยอัตโนมัติเมื่อจำเป็น แต่
package.el
ดูเหมือนจะไม่นำเสนอวิธีที่ตรงไปตรงมา คำตอบนี้บน emacs-SE บอกเราว่า“ถ้ามีการติดตั้งหลายสำเนาของแพคเกจแล้วคนแรกที่จะถูกโหลด” ดังนั้นฉันเดาหนึ่งได้ด้วยตนเองยุ่งกับload-path
แต่นี้ไม่ได้รู้สึกแข็งแกร่ง วิธีมาตรฐานในการเลือกแพ็คเกจรุ่นใดรุ่นหนึ่งในบรรดาแพ็คเกจที่ติดตั้งคืออะไร?แม้ว่าฉันจะสามารถเปิดเผยหลายสาขาไปยัง Emacs ได้ แต่สำหรับการปรับแต่งที่สำคัญฉันต้องตรวจสอบให้แน่ใจว่าสาขาที่ไม่ได้อัปเดตนั้น“ ไม่ได้โหลด” และผลข้างเคียงที่แยกได้ ไม่
unload-feature
จัดการนี้ถูกต้องหรือบางทีมันอาจจะมีนิสัยที่ทดสอบของแพคเกจหลาย versioned ทุกคนควรรู้เกี่ยวกับอะไร?ฉันจะติดตั้งและทดสอบเวอร์ชันในเครื่องได้อย่างไร คำตอบนั้นขึ้นอยู่กับว่าแพ็กเกจนั้นง่าย (= หนึ่งไฟล์) หรือหลายไฟล์ EmacsWiki พูดเกี่ยวกับแพ็คเกจที่หลากหลาย:“ MELPA สร้างแพ็คเกจสำหรับคุณ ” ฉันสงสัยว่าฉันต้อง (หรือควร) พูดคุยกับ MELPA ทุกครั้งที่ฉันเปลี่ยน
defun
แบบฟอร์มในแพ็คเกจที่หลากหลาย แต่คำถามยังคงอยู่ อย่างน้อยฉันต้องบอกตัวจัดการแพคเกจเกี่ยวกับเวอร์ชันในเครื่องและถ้าเป็นเช่นนั้นฉันจะทำอย่างไรฉันควรกำหนดชื่ออะไรให้กับแพ็คเกจในท้องถิ่น? สมมติว่าฉันต้องการทำงานกับคุณสมบัติหรือข้อบกพร่องหลายอย่างพร้อมกันซึ่งหมายความว่ามีหลายสาขา Emacs จะไม่อนุญาตให้ตั้งชื่อเวอร์ชันในลักษณะที่เป็นคำอธิบาย (ตามแนวของ
20170117.666-somebugorfeature
) ฉันเดาว่าฉันสามารถเปลี่ยนชื่อแพ็กเกจตัวเองคำต่อท้ายสาขา แต่อีกครั้งเช่นload-path
แฮ็คด้วยตนเองในไตรมาสที่ 1 นี่เป็นแฮ็คที่น่าเกลียดดังนั้นฉันจะไม่ลองกับสิ่งที่ฉันตั้งใจจะส่งอัปสตรีมเว้นแต่ว่าเป็นการปฏิบัติที่ยอมรับอย่างกว้างขวาง .
คำถามที่อาจไร้เดียงสาเนื่องจากฉันไม่เคยเขียนแพทช์ไม่ได้ใช้กับ git หรือ vcs ที่คล้ายกัน อย่างไรก็ตามสำหรับผู้ใช้ Emacs จำนวนมากการแพ็คเก็จ Emacs อาจเป็นครั้งแรกที่พวกเขาพยายาม (หรืออาจจะเป็นคนเดียว) การเขียนโปรแกรมโซเชียลซึ่งเป็นเหตุผลว่าทำไมผมเชื่อว่าคำตอบของคำถามนี้จะมีค่า
emacs -L
วิธีการโหลดแพ็คเกจท้องถิ่นที่ฉันติดตั้งไว้ทั่วโลกด้วย Cask สิ่งหนึ่งที่ทำให้ฉันผิดหวังคือการที่ใช้งาน<package>-version
จะส่งคืนเวอร์ชันที่ติดตั้งไว้ทั่วโลกเสมอแม้ในขณะที่ฉันกำลังใช้งานเวอร์ชันที่ปรับเปลี่ยนในเครื่องอยู่ก็ตาม จะเปิดออกนี้เป็นเพราะสำหรับแพคเกจนี้ได้รับรุ่นจาก<package>-version
packages.el