ทีมของเราเพิ่งเปลี่ยนจาก FogBugz & Kiln / Mercurial เป็น Jira & Stash / Git เรากำลังใช้โมเดล Git Flow สำหรับการแยกสาขาเพิ่มสาขาย่อยย่อยออกจากสาขาคุณลักษณะ (เกี่ยวข้องกับงานย่อย Jira ของคุณสมบัติ Jira) เรากำลังใช้ Stash เพื่อกำหนดผู้ตรวจสอบเมื่อเราสร้างคำขอดึงเพื่อรวมกลับเข้าไปในสาขาหลัก (โดยปกติจะพัฒนา แต่สำหรับงานย่อยกลับเข้าไปในสาขาคุณลักษณะ)
ปัญหาที่เราพบคือแม้ว่าจะมีการวางแผนที่ดีที่สุดและพังทลายของกรณีคุณสมบัติเมื่อนักพัฒนาหลายคนทำงานร่วมกันในคุณสมบัติเดียวกันพูดบน front-end และ back-end หากพวกเขากำลังทำงานบนรหัสพึ่งพาซึ่งกันและกัน ในสาขาแยกต่างหากผู้พัฒนารายหนึ่งจะปิดกั้นอีกฝ่าย
เราพยายามดึงระหว่างสาขาของกันและกันขณะที่เราพัฒนา นอกจากนี้เรายังพยายามสร้างการรวมสาขาในพื้นที่นักพัฒนาซอฟต์แวร์แต่ละคนสามารถดึงจากหลาย ๆ สาขาเพื่อทดสอบการรวมระบบที่พัฒนาขึ้น ในที่สุดและสิ่งนี้ดูเหมือนว่าจะทำงานได้ดีที่สุดสำหรับเราถึงแม้ว่าจะมีค่าใช้จ่ายเพิ่มขึ้นอีกเล็กน้อยเราได้ลองสร้างสาขาการรวมออกจากสาขาคุณลักษณะทันทีที่ค้างคาว เมื่อสาขาย่อยของภารกิจย่อย (ไม่อยู่ในสาขาฟีเจอร์) พร้อมสำหรับการร้องขอการดึงและการตรวจสอบโค้ดเรายังรวมการเปลี่ยนแปลงที่กำหนดไว้ในสาขาการรวมคุณลักษณะนี้ด้วยตนเอง จากนั้นผู้พัฒนาที่สนใจทุกคนสามารถดึงจากสาขาการรวมเข้ากับสาขาย่อยย่อยอื่น ๆ นี่เป็นการป้องกันไม่ให้ใครก็ตามที่รอสาขาที่พวกเขาต้องพึ่งพาเพื่อตรวจสอบรหัส
ฉันรู้ว่านี่ไม่จำเป็นต้องเป็นปัญหา Git - มันเกี่ยวกับการทำงานกับการพึ่งพาซึ่งกันและกันของรหัสในหลายสาขาผสมผสานกับกระบวนการทำงานและวัฒนธรรมของเราเอง หากเราไม่มีนโยบายการตรวจสอบรหัสที่เข้มงวดสำหรับการพัฒนา (สาขาการรวมที่แท้จริง) นักพัฒนา 1 สามารถผสานเพื่อพัฒนาสำหรับนักพัฒนา 2 เพื่อดึงจาก ความซับซ้อนอีกประการหนึ่งคือเราต้องทำการทดสอบเบื้องต้นเป็นส่วนหนึ่งของกระบวนการตรวจสอบโค้ดก่อนส่งคุณสมบัติไปยัง QA ซึ่งหมายความว่าแม้ว่าผู้พัฒนา front-1 1 จะดึงโดยตรงจากสาขานักพัฒนา back-end 2 เนื่องจากพวกเขา ไปถ้าผู้พัฒนาแบ็คเอนด์ 2 เสร็จสิ้นและคำขอดึงของเขาอยู่ในการตรวจสอบโค้ดเป็นเวลาหนึ่งสัปดาห์แล้วนักพัฒนาฟรอนต์เอนด์ 2 ในทางเทคนิคไม่สามารถสร้างคำขอการดึง / การตรวจสอบโค้ดของเขาได้เพราะผู้ตรวจสอบรหัสของเขา / เธอไม่สามารถ ทดสอบเพราะนักพัฒนาซอฟต์แวร์ส่วนหลัง 2 '
บรรทัดล่างคือเราพบว่าตัวเองอยู่ในอนุกรมมากกว่าวิธีขนานในกรณีเหล่านี้ขึ้นอยู่กับเส้นทางที่เราไปและต้องการหากระบวนการที่จะใช้เพื่อหลีกเลี่ยงปัญหานี้
สิ่งสุดท้ายที่ฉันจะพูดถึงคือเราตระหนักถึงการแบ่งปันรหัสข้ามสาขาที่ยังไม่ได้รับการตรวจสอบและสรุปรหัส แต่เรามีความสำคัญในการใช้รหัสเบต้าของผู้อื่น ในระดับหนึ่งฉันไม่คิดว่าเราสามารถหลีกเลี่ยงสิ่งนั้นและยินดีที่จะรับปริญญา