ภายใต้ Gentoo เครื่องมือในการจัดการการเปลี่ยนแปลงที่เกิดจากแพ็คเกจ / etc (เรียกว่า dispatch-conf) รองรับ rcs เพื่อติดตามการเปลี่ยนแปลง แต่นั่นไม่ได้ทรงพลังจริงๆ
ฉันมักจะปรับรุ่น / etc ของฉันผ่านgit
โดยเฉพาะอย่างยิ่งเมื่อใช้สาขาต่าง ๆ ฉันสามารถเก็บ / etc ของฉันให้ใกล้เคียงที่สุดกับการแจกแจงที่แตกต่างกันมากที่สุดในขณะที่รักษาสิ่งต่าง ๆ ไว้ในที่เดียวให้มากที่สุด ตัวอย่างเช่นแตกต่างกันจริง ๆ ในการแจกแจงที่ต่างกัน) มันทำงานได้เช่นนี้:
ฉันมีmaster
repo ของฉันพร้อมไฟล์กำหนดค่าเริ่มต้น ตอนนี้ฉันได้ติดต่อกับ distro ใหม่ดังนั้นฉันจึงสร้างสาขาใหม่ตามmaster
สาขาของฉันตามชื่อของการแจกจ่าย (ในตัวอย่างเดเบียน) Debian เก็บไฟล์ config บางอย่างที่แตกต่างกันในสถานที่จากฉันดังนั้นฉันทำmaster
git mv file new_loc
และทุกอย่างก็โอเค ฉันเปลี่ยนกลับเป็นmaster
และเปลี่ยนไฟล์นั้นเพราะฉันได้เพิ่มคำสั่งปรับแต่งเฉพาะบางอย่างเมื่อฉันรวมmaster
เข้าไปในdebian
สาขาของฉันไฟล์ที่ย้ายถูกเปลี่ยนดังนั้นฉันสามารถเปลี่ยนสิ่งต่าง ๆ ส่วนใหญ่ภายในmaster
สาขาของฉันและเพียงแค่ต้องรวมการเปลี่ยนแปลงใน สาขา (โดยปกติแล้วพวกเขามักจะมีการผสมผสานของการกระจายและสาขาวัตถุประสงค์เซิร์ฟเวอร์เดเบียนมีความแตกต่างบางอย่างกับเวิร์กสเตชันเดเบียนอย่างเห็นได้ชัด แต่คุณสมบัติยังคงทำงาน)
ดังนั้นโดยทั่วไปฉันมี "การกำหนดค่าทั่วไป" ในmaster
และ (พูดในแง่การเขียนโปรแกรมเชิงวัตถุ) สืบทอดสิ่งเหล่านั้นในสาขาของฉัน (ซึ่งยังสามารถสืบทอดจากกันและกัน)
นอกเหนือจากนั้นgit
กลไกของการกระทำ "cherry-pick" (ในกรณีนี้การเปลี่ยนเป็น / etc /) มีประโยชน์กับฉันในบางครั้งที่ฉันต้องการเพียงบางส่วนของการกำหนดค่าบางอย่าง
ตอนนี้ถึงความคิดของคุณ:
- ถ้าฉันต้องการการรวมตัวจัดการแพคเกจเพิ่มเติมฉันอาจจะใช้สคริปต์ตัวตัดคำสำหรับสิ่งนี้ (ในขณะที่ฉันไม่ทำ)
- การรักษาเวอร์ชันต้นน้ำเป็นสาขาจะทำงานได้ดี
git
เป็นเพียงอีกสาขาที่บางครั้งคุณรวม (บางส่วน) เข้าด้วยกันmaster
- รายการเพิกเฉยใน git เป็นไฟล์. gignignore ใน repo ของคุณเพื่อให้ครอบคลุม