สมมติว่าฉันกำลังเขียนซอฟต์แวร์ / program / app / script รุ่นเดียวกันสองรุ่นและเก็บไว้ภายใต้การควบคุมเวอร์ชัน รุ่นแรกเป็นรุ่น "พื้นฐาน" ฟรีในขณะที่รุ่นที่สองเป็นรุ่น "พรีเมี่ยม" แบบชำระเงินซึ่งใช้รหัสฐานของรุ่นฟรีและขยายออกไปด้วยคุณสมบัติเพิ่มมูลค่าพิเศษ แพทช์แก้ไขหรือฟีเจอร์ใหม่ใด ๆ จำเป็นต้องหาวิธีแก้ไขในทั้งสองเวอร์ชัน
ขณะนี้ฉันกำลังพิจารณาใช้master
และdevelop
สาขาสำหรับ codebase หลัก (รุ่นฟรี) ด้านข้างmaster-premium
และdevelop-premium
สาขาสำหรับรุ่นที่จำหน่ายได้แล้ว เมื่อมีการเปลี่ยนแปลงในเวอร์ชั่นฟรีและรวมเข้ากับmaster
สาขา (หลังจากการทดสอบอย่างละเอียดในdevelop
หลักสูตร) มันจะถูกคัดลอกไปยังdevelop-premium
สาขาผ่านcherry-pick
คำสั่งสำหรับการทดสอบเพิ่มเติมแล้วรวมเข้าmaster-premium
ด้วยกัน
นี่เป็นเวิร์กโฟลว์ที่ดีที่สุดในการจัดการกับสถานการณ์นี้หรือไม่ มีปัญหาที่อาจเกิดขึ้นคำเตือนหรือข้อผิดพลาดที่ควรระวังหรือไม่? มีกลยุทธ์การแตกแขนงที่ดีกว่าสิ่งที่ฉันคิดไว้แล้วหรือไม่?
ความคิดเห็นของคุณได้รับการชื่นชมอย่างมาก!
PS นี่สำหรับสคริปต์ PHP ที่จัดเก็บใน Git แต่คำตอบควรใช้กับภาษาหรือ VCS ใด ๆ