Git 2.43 แบนเนอร์
หลังจากพัฒนามาเป็น เวลาสามเดือน โครงการ Git ได้ประกาศ เปิด ตัวเวอร์ชันใหม่ Git 2.43ซึ่งมาพร้อมกับคุณสมบัติใหม่และการแก้ไขข้อบกพร่องจากผู้ร่วมพัฒนามากกว่า 80 คน โดย 17 คนเป็นผู้ร่วมพัฒนารายใหม่
Git เวอร์ชัน 2.43 ได้เพิ่มตัวเลือก "--filter" และ "--filter-to" ให้กับคำสั่ง "git repack"ตัวเลือกเหล่านี้ช่วยให้คุณสามารถสร้างแพ็กเกจใหม่ของที่เก็บข้อมูลโดยพิจารณาจากตัวกรองวัตถุที่ระบุไว้
นอกจากนี้ หากจำเป็น วัตถุที่ไม่ตรงตามตัวกรองสามารถย้ายไปยังตำแหน่งอื่นได้ ตัวเลือกเหล่านี้มีประโยชน์สำหรับการแบ่งพาร์ติชันที่เก็บตามเกณฑ์บางอย่าง เช่น การลบอ็อบเจ็กต์ที่ไม่จำเป็นหรือมีขนาดใหญ่เกินไป แม้จะมีการปรับเปลี่ยนเหล่านี้ แต่ความสามารถในการเข้าถึงทุกส่วนของพื้นที่เก็บข้อมูลผ่านการโคลนบางส่วนจะยังคงอยู่
การเปลี่ยนแปลงที่น่าสนใจ อีกอย่างใน git repack เวอร์ชันใหม่นี้คือ ตอนนี้รองรับการทำงานกับแพ็กเกจ Cruft หลายแพ็กเกจรวมถึงการแบ่งเนื้อหาในที่เก็บข้อมูลโดยใช้ตัวกรองออบเจ็กต์ด้วย
นอกจากนี้ความสามารถในการทำงานกับไฟล์ bundle หลายไฟล์ที่มีข้อมูลเกี่ยวกับอ็อบเจ็กต์ที่ไม่สามารถเข้าถึงได้ ซึ่งโดยทั่วไปเรียกว่า "cruft bundles" นั้นเป็นสิ่งที่น่าสนใจ ไฟล์เหล่านี้ไม่ได้ถูกอ้างอิงใน repository กล่าวคือ ไม่ได้เชื่อมโยงผ่าน branch หรือ tags ด้วยการแนะนำตัวเลือก `git repack --max-cruft-size` ใหม่ทำให้สามารถระบุขนาดสูงสุดของไฟล์ bundle ไฟล์เดียวและแบ่งฐานข้อมูลของอ็อบเจ็กต์ที่ไม่สามารถเข้าถึงได้ออกเป็นไฟล์ bundle ขนาดเล็กหลายไฟล์ได้แล้ว
การใช้ไฟล์แพ็กเกจขนาดเล็กหลายๆ ไฟล์แทนไฟล์ขนาดใหญ่เพียงไฟล์เดียวอาจส่งผลให้การดำเนินการ I/O ลดลงอย่างเห็นได้ชัดเมื่อทำแพ็กเกจที่เก็บใหม่ด้วยอ็อบเจ็กต์ที่ไม่สามารถเข้าถึงได้จำนวนมาก เนื่องจากการดำเนินการแต่ละครั้งไม่จำเป็นต้องเขียนทับข้อมูลทั้งหมด จึงช่วยปรับปรุงประสิทธิภาพของกระบวนการ
นอกจากนี้ ยังมีข้อสังเกตว่าคำสั่ง for-each-ref ได้รับการอัปเดตด้วยคุณสมบัติใหม่ที่เกี่ยวข้องกับการจัดรูปแบบโดยผู้ใช้สามารถสั่งให้ git for-each-ref ใช้กฎ .mailmap ใดๆ ที่ระบุไว้ใน repository ของตนกับตัวระบุรูปแบบที่กำหนดเองได้ รวมถึง %(authorname), %(committeremail) และอื่นๆ
นอกจากนี้ ยังมีข้อสังเกตว่าข้อความบันทึกเริ่มต้นที่สร้างโดยคำสั่ง "git revert"เมื่อทำการย้อนกลับคอมมิตที่บันทึกการย้อนกลับนั้นได้รับการแก้ไขเพื่อกระตุ้นให้ผู้คนอธิบายสถานการณ์ "การย้อนกลับ" ที่ซับซ้อนได้ดียิ่งขึ้นด้วยคำพูดของตนเอง
การเปลี่ยนแปลงที่สำคัญ อื่นๆในเวอร์ชันใหม่นี้ ได้แก่:
- มีการเปลี่ยนแปลงที่สำคัญกับระบบ CI ของ Git ทำให้การรัน CI ที่กำลังดำเนินอยู่ถูกยกเลิกเมื่อมีการพุชใหม่เกิดขึ้นกับสาขาที่อยู่ระหว่างการตรวจสอบ CI
- ตอนนี้ Git สามารถใช้และรายงานผลลัพธ์ไปยัง Coverity ซึ่งเป็นเครื่องมือวิเคราะห์แบบคงที่จาก Synopsys ได้แล้ว
- «git ผสานไฟล์» ขณะนี้มีวิธีอ่านเนื้อหาสามรูปแบบที่จะรวมจากวัตถุหยด
- เพิ่มความสามารถในการใช้กฎ .mailmap เพื่อระบุรูปแบบที่ระบุโดยใช้ตัวเลือก -รูปแบบในขณะที่ "%(ชื่อผู้เขียน)" และ "%(committeremail)" ถึง "git for-each-ref» และคำสั่งที่คล้ายกัน
- ตอนนี้ตัวเลือก –rfc และ –ประธานคำนำหน้า พวกเขาทำงานร่วมกัน
- ข้อความที่เขียนในสมัยโบราณป้องกันไม่ให้สาขาถูกลบออก โดยบอกว่าได้บันทึกไว้ที่อื่นแล้ว แต่ตอนนี้ขอเสนอว่าสาขาที่กำลังถูกแยกออกเป็นสองส่วนหรือรีเบสเป็นสาขาที่ถูกเช็คเอาท์และได้รับการป้องกันจากการถูกแก้ไขด้วยเส้นทางโค้ดเดียวกัน มีการเปลี่ยนข้อความใหม่เพื่อบอกว่าสาขา "ใช้งานอยู่" เพื่อหลีกเลี่ยงความสับสน
- «git update-index.php»ตอนนี้คุณมีทางเลือกแล้ว»–show-index-version» เพื่อตรวจสอบเวอร์ชันของรูปแบบดัชนีที่ใช้โดยไฟล์ดัชนีบนดิสก์
- คุณสมบัติใหม่ในรูปแบบบันทึก git แบบกำหนดเอง ช่วยให้ผู้ใช้สามารถเพิ่มการตกแต่งโดยใช้ตัวยึดตำแหน่งใหม่ %(ตกแต่ง) ซึ่งมาพร้อมกับตัวแก้ไขเพิ่มเติม เช่น คำนำหน้า ส่วนต่อท้าย ตัวคั่น และอื่นๆ
สุดท้ายนี้ หากคุณสนใจเรียนรู้เพิ่มเติม สามารถดูรายละเอียดได้ที่ลิงก์ต่อไปนี้