การแก้ไขบั๊กจะอยู่ที่ไหนในโมเดล git-flow


15

ในปกติเรียกว่าโปรแกรมแก้ไขด่วนรุ่นGit ไหลไปในhotfix-*สาขาเฉพาะของพวกเขาและการแก้ไขการรวมขนาดเล็กทันทีก่อนที่จะปล่อยไปในrelease-*สาขา การแก้ไขข้อบกพร่องทั่วไปจากรุ่นก่อนหน้าดูเหมือนจะไม่มีสถานที่

พวกเขาควรจะปรากฏที่ไหน พวกเขาควรจะอยู่ในbug-*สาขาของตัวเองแตกแขนงออกdevelop(เหมือนfeatureกิ่ง)?


3
เหตุใดข้อผิดพลาดที่ไม่สำคัญในโค้ดที่นำออกใช้จะแตกต่างจากฟีเจอร์ขนาดเล็กเพื่อสร้างพฤติกรรมที่แตกต่างจากที่แอปพลิเคชันทำอยู่ในปัจจุบัน
Bart van Ingen Schenau

@BartvanIngenSchenau คุณแนะนำให้พวกเขาเป็นfeature-*สาขาหรือไม่? การแก้ไขพฤติกรรมที่ผิดพลาดสามารถถูกมองว่าเป็นคุณสมบัติได้หรือไม่?
รองเท้า

1
@Shoe ผมคิดว่าสิ่งที่บาร์ตหมายถึงคือการที่คุณคุณควรรักษาพวกเขาเป็นคุณสมบัติที่ไม่จำเป็นต้องใช้คำนำหน้าสาขาเดียวกัน
Darkhogg

3
@Shoe: ในคอมไพล์ไหลทุกสาขายกเว้นmaster, develop, release-*หรือhotfix-*เป็นสาขาคุณลักษณะเพื่อให้คุณสามารถใช้คำนำหน้าใด ๆ ที่คุณชอบและใช้คำนำหน้าแตกต่างกันสำหรับข้อบกพร่อง นอกจากนี้ความแตกต่างระหว่างพฤติกรรมที่ผิดพลาดที่ทำงานตามที่ระบุและพฤติกรรมที่ผิดพลาดที่เบี่ยงเบนไปจากสเปคคืออะไร? ในทั้งสองกรณีเป็นพฤติกรรมที่ผิดพลาด แต่มีเพียงข้อผิดพลาดสุดท้ายเท่านั้น
Bart van Ingen Schenau

คำตอบ:


9

คำตอบสั้น ๆ : ใช่สาขาสำหรับการแก้ไขข้อบกพร่องที่จะเข้าสู่การวางจำหน่ายที่วางแผนไว้ควรจะอยู่ในสาขาฟีเจอร์ วิธีที่คุณตั้งชื่อสาขาคุณลักษณะหรือสาขาเหล่านี้สำหรับการแก้ไขข้อบกพร่องนั้นขึ้นอยู่กับคุณและมาตรฐานของทีมของคุณ แต่ควรได้รับการปฏิบัติเหมือนกันหากคุณติดตาม Gitflow


ความคิดเห็นของ Bart van Ingen Schenauนำมาซึ่งจุดที่ดี

Gitflow มีประเภทสาขาห้าประเภท: master,, developสาขาโปรแกรมแก้ไขด่วน (นำหน้าด้วยhotfix-), สาขาที่วางจำหน่าย (นำหน้าด้วยrelease-, และสาขาคุณสมบัติฟีเจอร์masterและdevelopสาขาเป็นสาขาที่ใช้งานมายาวนานและคุณไม่ผูกพันโดยตรงrelease-สาขาเหล่านั้นทำการวาดเส้น สำหรับรุ่นที่เฉพาะเจาะจงแล้วรองรับการแก้ไขข้อผิดพลาดระหว่างการระบุรุ่นถัดไปและรีลีสhotfix-สาขาต่าง ๆ มีไว้สำหรับการเผยแพร่ที่สำคัญนอกวงจรออกไปสู่การผลิตfeature-สาขาสำหรับการพัฒนาคุณลักษณะส่วนบุคคลสำหรับการเปิดตัวในอนาคต

มาจากสภาพแวดล้อมที่ PRs มีการใช้และนอกเหนือจากการเป็นนักพัฒนาแต่ละ committing สาขาคุณลักษณะอะไรควรจะมุ่งมั่นโดยตรงลงmaster, developหรือสาขาที่วางจำหน่าย สิ่งนี้ทำให้มั่นใจได้ว่าการเปลี่ยนแปลงทุกครั้งจะได้รับการตรวจสอบรหัสพร้อมกับการตรวจสอบความครอบคลุมการทดสอบที่เหมาะสมและผ่านการทดสอบในสภาพแวดล้อม CI ก่อนที่จะมีการเปลี่ยนแปลงใด ๆ ฉันจะไม่เห็นด้วย ไม่มีปัญหาใด ๆ กับการยอมรับการแก้ไขข้อบกพร่องก่อนวางจำหน่ายหรือการเปลี่ยนแปลงโดยตรงในสาขาที่วางจำหน่ายแล้วดึงพวกเขาไปสู่การพัฒนาแล้วสาขาคุณลักษณะ

ในกรณีเฉพาะของคุณrelease-สาขานั้นไม่ใช่สถานที่ที่เหมาะสม masterซอฟต์แวร์ที่ได้รับการปล่อยตัวออกมาแล้วและอยู่ใน เมื่อรีลีสถูกรวมเข้ากับมาสเตอร์และติดแท็กที่นั่นสาขาการวางจำหน่ายสำหรับรีลีสนั้นจะมีจุดประสงค์ที่ไม่ดีกว่าและไม่จำเป็นต้องมีอยู่อีกต่อไป หากคุณกระตือรือร้นที่จะทำความสะอาดสาขาของคุณ (ซึ่งฉันคิดว่าทุกคนควรจะเป็น) นั่นก็ไม่ใช่ตัวเลือก

หากการแก้ไขของคุณไม่สำคัญสาขาของโปรแกรมแก้ไขด่วนก็จะไม่พอดี วัตถุประสงค์ของสาขาโปรแกรมแก้ไขด่วนคือให้ผู้อื่นได้รับการเปลี่ยนแปลงที่สำคัญในการผลิตอย่างรวดเร็วโดยไม่รบกวนการพัฒนาอย่างต่อเนื่อง การใช้สิ่งเหล่านี้ควรเป็นข้อยกเว้นมากกว่าบรรทัดฐานสำหรับทีมพัฒนา โดยทั่วไปโปรแกรมแก้ไขด่วนที่สำคัญควรเป็นกรณีพิเศษ

สิ่งเดียวที่เหลืออยู่คือฟีเจอร์สาขา โปรดทราบว่าส่วนของหน้าที่เชื่อมโยงไปถึงในคำถามเกี่ยวกับฟีเจอร์บแม้จะบอกว่าฟีเจอร์ย่อยนั้น "บางครั้งเรียกว่ากิ่งก้านของหัวข้อ" หากการเปลี่ยนแปลงของคุณกำหนดเป้าหมายไปยังรุ่นที่กำลังจะออกมาและไม่ตรงตามเกณฑ์สำหรับการแก้ไขด่วนควรเป็นหนึ่งในสาขาเหล่านี้


เราเห็นพ้องกันว่าไม่ควรมุ่งมั่นที่จะพัฒนาหรือปล่อยสาขาโดยตรง แต่สิ่งที่ควรเป็นกระแส PR เมื่อคุณพบข้อผิดพลาดในสาขาที่วางจำหน่ายและมันจะต้องได้รับการแก้ไขทั้งในปล่อยและพัฒนาสาขา นี่เป็นความท้าทายของตัวเองหากสาขาการวางจำหน่ายทั้งหมดของคุณยังไม่พร้อมที่จะผสานในการพัฒนา แต่การแก้ไขข้อบกพร่องควรทำที่สถานที่ทั้งสองถ้าคุณต้องการฉันสามารถโพสต์คำถามใหม่สำหรับเรื่องนี้
ทรัพย์

@Sap คำถามใหม่จะดี แต่ถ้าคุณโพสต์โปรดอธิบายว่าทำไมการแก้ไขจึงสำคัญที่จะต้องรวมเข้ากับทั้งสอง - ดูเหมือนว่าบ่งบอกว่ามีปัญหาร้ายแรงที่ไม่พบก่อนที่จะถูกนำมาใช้developไม่ใช่ พบระหว่างเวลาที่มีการนำมาใช้และการสร้างสาขาที่วางจำหน่ายและ / หรือสาขาที่วางจำหน่ายของคุณมีอยู่เป็นเวลานาน แต่ฉันเชื่อว่าทางเลือกเดียวคือ Cherry-Pick (ฉันขอแนะนำการแก้ไขและดึงคำขอไปยังสาขาที่วางจำหน่ายรวมเข้ากับสาขาที่วางจำหน่ายและ Cherry-pick เข้าสู่การพัฒนาผ่านคำขอดึง)
Thomas Owens

5

หากการคอมมิชชันเพียงครั้งเดียวก็ให้คอมมิทระบุและผลักดันให้อยู่ด้านบนสุดของสาขาการพัฒนาสร้างสาขาฟีเจอร์

นอกจากนี้ยังมีความคิดเห็นจากผู้เขียน git-flow ว่าสิ่งที่คุณถามอย่างแน่นอน: ไม่มีการแก้ไขข้อบกพร่องสาขา # 24


ขอบคุณลิงก์ที่คุณแชร์ให้ลบข้อมูลนี้ให้ฉัน
arcseldon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.