พื้นที่เก็บข้อมูล git สามารถถูกคิดว่าเป็นชุดของการแก้ไขที่สั่งบางส่วน (โดยที่การแก้ไขหนึ่งครั้งนั้นเร็วกว่าที่อื่นในลำดับถ้ามันเป็นตัวตายตัวแทนโดยตรงหรือโดยอ้อมของอันก่อนหน้านี้) คำสั่งบางส่วนที่คุณได้รับจากที่เก็บ git มักจะมีความกว้างต่ำ (ขนาดของชุดการตรวจทานอิสระที่ใหญ่ที่สุด) เนื่องจากความกว้างเกี่ยวข้องโดยตรงกับจำนวนนักพัฒนาที่ใช้งานอยู่และจำนวนส้อมที่แตกต่างกัน บน.
จากพื้นฐานนี้ฉันขอแนะนำทฤษฎีบทของ Dilworthซึ่งระบุว่าความกว้างของคำสั่งบางส่วนเท่ากับจำนวนขั้นต่ำของโซ่ (ชุดย่อยที่สั่งทั้งหมด) จำเป็นต้องครอบคลุมทุกรุ่น และเพื่อให้เป็นหัวข้อสำหรับบอร์ดนี้คุณยังสามารถพูดถึงอัลกอริธึมการจับคู่กราฟที่ใช้สำหรับการคำนวณความกว้างและการค้นหาหน้าปกด้วยโซ่จำนวนน้อยที่สุดในเวลาพหุนาม
วิธีหนึ่งที่อาจเกี่ยวข้องกับการใช้งานจริงใน Git คือระบบการแสดงประวัติรุ่นของระบบ: ระบบการสร้างภาพ Git ส่วนใหญ่ที่ฉันเห็นเวลาวาดบนแกนตั้งและที่เก็บอิสระแนวนอนดังนั้น จะให้วิธีการจัดระเบียบการสร้างภาพข้อมูลให้เป็นแทร็กแนวตั้งอิสระจำนวนเล็กน้อย
หรือถ้าคุณต้องการอะไรที่ทะเยอทะยานและก้าวหน้ากว่านี้ลองใช้โครงสร้างข้อมูลต้นไม้โทษของ Demaine et al. ซึ่งได้แรงบันดาลใจโดยตรงจากการแก้ไขข้อขัดแย้งในระบบควบคุมเวอร์ชันเหมือน git