เมื่อทำงานกับคอมไพล์ในทีมที่ใช้ฟีเจอร์บรานช์ฉันมักจะพบว่ามันยากที่จะเข้าใจโครงสร้างสาขาในประวัติศาสตร์
ตัวอย่าง:
สมมติว่ามีฟีเจอร์ branch / make-coffeeฟีเจอร์และการแก้ไขข้อผิดพลาดยังคงดำเนินต่อไปบนมาสเตอร์ขนานกับฟีเจอร์ branch
ประวัติอาจมีลักษณะเช่นนี้:
* merge feature/make-coffee
|\
| * small bugfix
| |
* | fix bug #1234
| |
| * add milk and sugar
| |
* | improve comments
| |
* | fix bug #9434
| |
| * make coffe (without milk or sugar)
| |
* | improve comments
|/
*
ปัญหา
เมื่อมองแวบแรกฉันพบว่ามันยากที่จะบอกว่าด้านไหนเป็นสาขาฟีเจอร์ ฉันมักจะต้องเรียกดูความคิดเห็นหลาย ๆ ด้านทั้งสองด้านเพื่อให้ได้แนวคิดซึ่งเป็นสิ่งที่ สิ่งนี้จะซับซ้อนมากขึ้นถ้ามีหลายฟีเจอร์ย่อยในแบบคู่ขนาน (โดยเฉพาะถ้ามันมีไว้สำหรับฟีเจอร์ที่เกี่ยวข้องอย่างใกล้ชิด) หรือถ้ามีการผสานทั้งสองทิศทางระหว่างฟีเจอร์ฟีเจอร์และมาสเตอร์
ในทางตรงกันข้ามในการโค่นล้มนี่เป็นเรื่องง่ายขึ้นอย่างมากเพราะชื่อสาขาเป็นส่วนหนึ่งของประวัติศาสตร์ - ดังนั้นฉันสามารถบอกได้ทันทีว่าการกระทำได้ทำไว้ใน "ฟีเจอร์ / การทำกาแฟ"
Git สามารถทำให้สิ่งนี้ง่ายขึ้นโดยการรวมชื่อของสาขาปัจจุบันในการกระทำเมตาดาต้าเมื่อสร้างการกระทำ (พร้อมกับผู้เขียนวันที่ ฯลฯ ) อย่างไรก็ตามคอมไพล์ไม่ได้ทำเช่นนี้
มีเหตุผลพื้นฐานบางประการที่ว่าทำไมสิ่งนี้ถึงไม่ทำ? หรือเป็นเพียงว่าไม่มีใครต้องการคุณสมบัติ? ถ้าเป็นอย่างหลังมีวิธีอื่นในการทำความเข้าใจวัตถุประสงค์ของสาขาประวัติศาสตร์โดยไม่เห็นชื่อหรือไม่?