ความสับสนทั้งหมดเกิดจากความหมายต่าง ๆที่ MS ใช้สำหรับ "Build number" และโดยเฉพาะ "Revision" เงื่อนไขหมายถึงสิ่งที่แตกต่าง
คนส่วนใหญ่ (รวมตัวเอง) ใช้ชุดรูปแบบการกำหนดหมายเลขแบบ semanticซึ่งคุณจะได้รับหมายเลข BUILD ที่สูงขึ้นเมื่อใดก็ตามที่คุณต้องสร้างบิลด์ใหม่ด้วยเหตุผลใดก็ตาม สำหรับเราแล้วโปรแกรมแก้ไขด่วนจะถูกพิจารณาว่าเป็นการเปลี่ยนแปลงรหัสอีกส่วนหนึ่งและส่วน BUILD จะเพิ่มขึ้นโดยอัตโนมัติเมื่อมีการเรียกใช้ CI ทุกครั้ง โมดูลที่มี MAJ.MIN.REV เดียวกันนั้นถือว่าใช้แทนกันได้และ BUILD จะบอกคุณว่าโมดูลใดเป็นรุ่นล่าสุด
อย่างไรก็ตามการเพิ่มจำนวน REVISION บ่งชี้ว่ามีการเปิดตัวสาขาใหม่อย่างถาวรนั่นคือสาเหตุที่เราวางมันไว้ข้างหน้า BUILD ข้อเสียของวิธีการนั้นคือเราอาจได้ลำดับเหตุการณ์ต่อไปนี้:
- กระทำหมายเลข 4711: อลิซเพิ่มคุณสมบัติ A
- CI สร้างบิลด์ 1.2.3.100
- ส่งหมายเลข 4712: คุณลักษณะที่แก้ไขของ Bob
- กระทำหมายเลข 4713: คุณลักษณะถาวรของอลิซ A ("โปรแกรมแก้ไขด่วน")
- CI สร้างการสร้าง 1.2.3.101
อย่างที่คุณเห็นโปรแกรมแก้ไขด่วนไม่ใช่การเปลี่ยนแปลงเพียงอย่างเดียวที่มีอยู่ในบิลด์ถัดไป แต่การดัดแปลงของบ็อบก็กลายเป็นส่วนหนึ่งของบิลด์นั้น หากคุณต้องการทำให้สาขาปัจจุบันมีเสถียรภาพคุณอาจพบปัญหาเนื่องจากคุณไม่สามารถแน่ใจได้ว่า Bob เพิ่งเพิ่มข้อบกพร่องหลายอย่างหรือไม่
MS ใช้คำทั้งสองแตกต่างกัน หมายเลข BUILD ไม่ได้ถูกเพิ่มโดยอัตโนมัติ แต่ก็ถือได้ว่าเป็นประเภทสาขาที่วางจำหน่ายเพื่อตรึงรหัสที่ใช้สำหรับรหัสรุ่นใดรุ่นหนึ่งโดยเฉพาะ REVISION ระบุการเปลี่ยนแปลง "ร้อน" เพิ่มเติมที่ใช้กับสาขา BUILD นั้น ลำดับจึงจะเป็นดังนี้:
- ส่งหมายเลข 4711: อลิซได้เพิ่มคุณสมบัติ A ไปยังช่องเก็บของ
- คาร์ลสร้างงานสร้างสาขา
1.2.100
- CI สร้างการสร้าง 1.2.100.0
- ส่งหมายเลข 4712: คุณลักษณะที่แก้ไขของ Bob ในลำตัว / ตัวหลัก
- กระทำหมายเลข 4713: คุณลักษณะถาวรของอลิซ A ใน
1.2.100
สาขา
- CI สร้างบิลด์ 1.2.100.1
คำว่า REVISION อาจอ้างถึง
- การแก้ไขผลิตภัณฑ์ (เป็นวิธีที่คนส่วนใหญ่ใช้)
- การแก้ไขการสร้างรายวันเฉพาะ(นั่นคือสิ่งที่ MS ทำ)
ความแตกต่างที่สำคัญระหว่างกระบวนการทั้งสองคือไม่ว่าคุณต้องการความสามารถในการใช้โปรแกรมแก้ไขด่วนกับการสร้าง CI หรือไม่และ ณ จุดใดในกระบวนการที่สาขานั้นสร้างขึ้น แง่มุมนี้มีความสำคัญเมื่อคุณต้องการที่จะเลือกงานสร้างเฉพาะเมื่อใดก็ได้หลังจากการทดสอบทั้งหมดประสบความสำเร็จและโปรโมตเวอร์ชันนั้นให้ตรงกับรุ่นผลิตภัณฑ์อย่างเป็นทางการครั้งต่อไป
ในกรณีของเราเครื่องมือ CI สร้างแท็กที่เก็บดังนั้นเราจึงมีข้อมูลที่จำเป็นพร้อมใช้เสมอเมื่อจำเป็น ด้วย SVN มันจะกลายเป็นเรื่องที่ง่ายขึ้นเพราะแท็กและกิ่งไม้ได้รับการใช้งานในลักษณะเดียวกัน - แท็กไม่มีอะไรมากไปกว่าสาขาที่อยู่ด้าน/tags
ล่าง
ดูสิ่งนี้ด้วย
จากส่วนคำถามที่พบบ่อยที่กลยุทธ์การแยกสาขาของ TFS :
ฉันควรแก้ไขตั๋ว P1 (โปรแกรมแก้ไขด่วน) สาขาใด
P1 ควรได้รับการแก้ไขในสาขาที่ใกล้เคียงที่สุดกับฐานรหัสที่ทำงานในการผลิต ในกรณีนี้ P1 ควรได้รับการแก้ไขในสาขา Prod ด้วยการใช้การแก้ไขในสาขาอื่นและนำเสนอการเปลี่ยนแปลงในการผลิตคุณมีความเสี่ยงในการปล่อยโค้ดกึ่งสำเร็จรูปหรือยังไม่ผ่านการทดสอบจากการทำซ้ำครั้งต่อไป
ตอนนี้คุณอาจโต้แย้งว่าปลอดภัยที่จะทำงานโดยตรงกับสาขา Prod คิดอีกครั้ง P1 ที่ต้องการความสนใจทันทีไม่ควรเป็นปัญหาพื้นฐานในระบบ ในกรณีที่เป็นปัญหาพื้นฐานควรเพิ่มลงในผลิตภัณฑ์ที่ค้างเนื่องจากอาจต้องวิเคราะห์และสนทนากับลูกค้าเพิ่มเติม
การอ่านที่ดีอีกอย่างคือคู่มือการแยกสาขาของ TFS