เวอร์ชันผลิตภัณฑ์เช่นv1.0.0.100
ไม่เพียงแสดงถึงการผลิตซอฟต์แวร์ที่ไม่ซ้ำใคร แต่ช่วยระบุชุดคุณลักษณะและขั้นตอนการแก้ไขด่วนสำหรับผลิตภัณฑ์ดังกล่าว ตอนนี้ฉันเห็นสองวิธีในการรักษาแพ็กเกจ / build / ไบนารีเวอร์ชันสุดท้ายของผลิตภัณฑ์:
การควบคุมเวอร์ชัน ไฟล์ที่เก็บหมายเลขรุ่น เซิร์ฟเวอร์การสร้างการรวมต่อเนื่อง (CI) จะมีสคริปต์เพื่อสร้างซอฟต์แวร์ที่ใช้หมายเลขรุ่นที่เช็คอินนี้เพื่อใช้กับทุกพื้นที่ของซอฟต์แวร์ที่ต้องการ (ไบนารีแพคเกจการติดตั้งหน้าช่วยเหลือเอกสาร ฯลฯ )
สภาพแวดล้อมและ / หรือสร้างพารามิเตอร์ สิ่งเหล่านี้ได้รับการดูแลรักษาไว้นอกการควบคุมเวอร์ชัน (เช่นไม่ได้เชื่อมโยงกับสแน็ปช็อต / แท็ก / สาขา) สคริปต์การสร้างกระจายและใช้หมายเลขในลักษณะเดียวกัน แต่พวกเขาเพิ่งได้รับค่าที่แตกต่างกัน (มันมีให้กับสคริปต์การสร้างแทนที่จะให้สคริปต์รู้ว่าจะรับได้ที่ไหนเทียบกับต้นไม้แหล่งที่มา)
ปัญหาที่เกิดขึ้นกับวิธีแรกคือมันสามารถทำให้เกิดการผสมข้ามสาขาได้ยาก หากคุณยังคงรักษาซอฟต์แวร์รุ่นเดียวกันไว้ 2 ขนานคุณจะแก้ไขข้อขัดแย้งเมื่อรวมระหว่างการฉีดสองครั้งหากเวอร์ชันมีการเปลี่ยนแปลงทั้งคู่ตั้งแต่การรวมครั้งล่าสุด
ปัญหาเกี่ยวกับวิธีการที่สองคือการกระทบยอด เมื่อคุณกลับไปที่การวางจำหน่าย 1 ปีที่ผ่านมาคุณจะพึ่งพาข้อมูลแท็กเพียงอย่างเดียวเพื่อระบุหมายเลขรุ่น
ในทั้งสองกรณีอาจมีบางแง่มุมของหมายเลขเวอร์ชันที่ไม่ทราบก่อนสร้าง CI ตัวอย่างเช่นการสร้าง CI โดยทางโปรแกรมอาจใส่องค์ประกอบที่ 4 ซึ่งเป็นหมายเลขบิลด์อัตโนมัติ (เช่นบิลด์ที่ 140 ในสาขา) อาจเป็นหมายเลขการแก้ไขใน VCS
วิธีที่ดีที่สุดในการติดตามหมายเลขเวอร์ชันของซอฟต์แวร์คืออะไร ควรรักษาชิ้นส่วน "รู้จัก" ไว้ใน VCS เสมอหรือไม่ และถ้าเป็นเช่นนั้นความขัดแย้งในสาขาการฉีดจะเป็นปัญหาหรือไม่?
ตอนนี้เรารักษาหมายเลขเวอร์ชั่นของเราผ่านพารามิเตอร์ที่ระบุและบำรุงรักษาในแผนสร้าง CI (Atlassian Bamboo) เราจะต้องระมัดระวังก่อนที่จะควบรวมกิจการของเราmaster
สาขาที่หมายเลขรุ่นจะถูกติดตั้งในอนาคตของ CI สร้างเตะออก เกี่ยวกับขั้นตอนการทำงานของ Gitflow ฉันรู้สึกว่าถ้าหมายเลขเวอร์ชั่นถูกติดตามในการควบคุมแหล่งที่มาเราสามารถรับประกันได้ว่ามันจะถูกติดตั้งอย่างถูกต้องเมื่อเราสร้างrelease
สาขาของเราในการเตรียมการเปิดตัว QA จะทำการทดสอบการรวมตัว / ควัน / การถดถอยขั้นสุดท้ายในสาขานี้และเมื่อมีการออกจากระบบการรวมจะmaster
เกิดขึ้นซึ่งเป็นสัญญาณบ่งบอกถึงความมุ่งมั่นที่จะปล่อย
version.txt
หนึ่งเวอร์ชันมีหนึ่งบรรทัด1.0.7
และอีกอัน1.2.0
ยากที่จะแก้ไขหรือไม่? หากนี่เป็นความขัดแย้งเพียงอย่างเดียวในการรวมสาขาสองสาขาที่แยกจากกันฉันจะถือว่าตัวเองโชคดีมาก บ่อยแค่ไหนที่มันจะเกิดขึ้น? หากเกิดขึ้นจะเป็นเรื่องดีที่คุณถูกบังคับให้คิดว่าหมายเลขรุ่นที่ผสานควรมีหรือไม่ (ขออภัยสำหรับการใช้คำว่า "version" ที่คลุมเครือ)