TFS? วิ่งไปที่เนินเขา! เลื่อนออกให้เร็วที่สุด มันทำสิ่งต่าง ๆ มากมาย แต่ไม่มีสิ่งใดที่ดีเท่าเครื่องมือพันธุ์ที่ดีที่สุด
แต่จริงจัง:
เมื่อคุณมีระบบควบคุมเวอร์ชันที่ดี (SVN, GIT และอื่น ๆ ) ฉันขอแนะนำให้ตั้งค่ากฎสำหรับการจัดการสาขาเช่นเมื่อจะสร้างสาขาสำหรับอะไรเมื่อไหร่ที่จะรวมใครและอีกมากมาย
จนกระทั่งเมื่อเร็ว ๆ นี้เราใช้สาขาเดียวสำหรับการพัฒนาใหม่ ('ลำตัว') สำหรับรุ่นเราจะสร้างสาขาออกจากลำตัว QA ขั้นสุดท้ายจะทำในสาขานั้นและเมื่อเสร็จแล้วเราจะปล่อย (เราอยู่ในรุ่นรายเดือน)
เราได้เปลี่ยนไปใช้แนวคิดของ 'ไม่มีขยะในลำตัว' เพื่อลดความเสี่ยงของกำหนดการ โดยทั่วไปแนวคิดนี้มีกฎที่คุณจะสร้างสาขาสำหรับงานพัฒนาแยกจากลำต้น ตัวอย่างเช่นคุณอาจมีสาขาแยกต่างหากสำหรับคุณลักษณะสำหรับทีมพัฒนาขนาดเล็กหรือคล้ายกัน เราใช้ 'มหากาพย์' เพื่ออธิบายคุณสมบัติขนาดเล็กหรือเป็นส่วนหนึ่งของคุณลักษณะที่สามารถเรียกคืนได้และสร้างสาขาสำหรับแต่ละมหากาพย์ อย่างน้อยวันละครั้งการเปลี่ยนแปลงทั้งหมดจากลำต้นจะรวมเข้ากับสาขามหากาพย์ คีย์คือการผสานที่ดีโดยการควบคุมเวอร์ชันหรือเครื่องมือแยกต่างหาก (เช่นการผสานสามทาง) QA สำหรับมหากาพย์จะทำในสาขามหากาพย์ เมื่อผ่านสาขาของมหากาพย์แล้วจะถูกรวมเข้ากับลำตัวและทำการทดสอบการรวมเข้าด้วยกัน เรายังมีสาขาสำหรับการเปิดตัว
ด้วยสาขาของมหากาพย์เราได้ลดความเสี่ยงของกำหนดการลงอย่างมากเนื่องจากขณะนี้เราอยู่ในฐานะที่จะปล่อยออกมาจากลำตัวและรวมถึงมหากาพย์ทั้งหมดที่รวมเข้ากับลำตัวได้สำเร็จ มหากาพย์ที่ไม่สมบูรณ์พลาดรถบัสและจะทำให้รุ่นถัดไป (เดือนถัดไป)
หลักสูตรนี้อาจใช้งานได้เฉพาะในสภาพแวดล้อมของเรา มีโอกาสมากที่คุณจะมีปัจจัยที่แตกต่างจากของเราที่จะมีอิทธิพลต่อตัวเลือกที่ดีที่สุดสำหรับการจัดการสาขา
ตัวอย่างเช่นหากคุณมีทีมงานที่มีผู้คนจำนวนมากทำงานจากระยะไกลและไม่ได้เชื่อมต่อกับเซิร์ฟเวอร์ควบคุมเวอร์ชันเสมอคุณจะต้องใช้ระบบควบคุมเวอร์ชันที่รองรับรุ่นที่แจกจ่าย GIT และอีกสองสามคนจะอยู่ในหมวดหมู่นี้ TFS ที่ดีที่สุดในความรู้ของฉันต้องการการเชื่อมต่อกับเซิร์ฟเวอร์เพื่อทำให้ไฟล์สามารถเขียนได้ (แก้ไขในรุ่น 2010 หรือไม่)
ฉันหวังว่าฉันจะสามารถแสดงให้เห็นว่าไม่มี "หนึ่งขนาดเหมาะกับทุกคน" เริ่มต้นด้วยกระบวนการของคุณในการจัดการสาขาโดยเฉพาะกำหนดข้อกำหนดและสุดท้ายเลือกเครื่องมือที่ตรงกับความต้องการของคุณมากที่สุด อาจเป็น TFS หรืออาจจะไม่