ไม่กี่วันก่อนมีการประกาศ การเปิดตัวเวอร์ชันใหม่ของโครงการ Git 2.50, แนะนำการเปลี่ยนแปลงมากกว่า 600 รายการ ขับเคลื่อนโดยชุมชนที่กระตือรือร้น ซึ่งครั้งนี้ประกอบด้วยนักพัฒนาถึง 98 คน รวมถึงผู้สนับสนุนใหม่ 35 คน
Git เวอร์ชันใหม่ 2.50 นี้โดดเด่นด้วยการผสานคำสั่งใหม่ (git-diff-pairs) ฟังก์ชันใหม่สำหรับการทำความสะอาด การกรอง และการบำรุงรักษา การแทนที่กลไกการผสานแบบเรียกซ้ำด้วย ORT รวมถึงการปรับปรุงประสิทธิภาพและการแก้ไขจุดบกพร่อง
Git 2.50 คุณสมบัติใหม่ที่สำคัญ
ใน Git เวอร์ชันใหม่ 2.50 นี้ หนึ่งในฟีเจอร์ใหม่ที่สำคัญที่สุดคือ การเพิ่มประสิทธิภาพในการบำบัดสิ่งที่เรียกว่า "cruft packs" นั่นคือแพ็กเกจของอ็อบเจ็กต์ที่ไม่สามารถเข้าถึงได้หรือไม่มีการอ้างอิงโดยสาขาหรือแท็ก โดยปกติแล้ว Git จะจัดเก็บอ็อบเจ็กต์เหล่านี้ในไฟล์แพ็กเกจขนาดใหญ่ไฟล์เดียว ซึ่งอาจทำให้เกิดปัญหาประสิทธิภาพเมื่อทำการแพ็กเกจที่เก็บใหม่ด้วยรายการเหล่านี้จำนวนมาก
ด้วยเวอร์ชันใหม่ Git ช่วยให้คุณแยกแพ็คขยะเหล่านี้ออกเป็นไฟล์เล็กๆ หลายไฟล์ซึ่งช่วยลดการใช้ดิสก์และปรับปรุงประสิทธิภาพการอินพุต/เอาต์พุตสำหรับการดำเนินการจำนวนมาก นอกจากนี้และเข้าสู่ตัวเลือก –combine-cruft-below-sizeซึ่งช่วยให้ รวมแพ็คเกจเล็ก ๆ ให้เป็นหนึ่งเดียวได้อย่างยืดหยุ่นมากขึ้น มากกว่าตัวเลือก –max-cruft-size ก่อนหน้านี้ โดยไม่จำกัดขนาดไฟล์รวม คุณลักษณะใหม่นี้มีประโยชน์อย่างยิ่งในโปรเจ็กต์ที่มีอ็อบเจ็กต์กำพร้ากระจายอยู่ในแพ็คเกจหลายรายการ
การปรับปรุงอีกประการหนึ่งที่มุ่งเน้นไปที่ที่เก็บข้อมูลขนาดใหญ่คือ การสนับสนุนการทดลองสำหรับ การอัพเดตเพิ่มเติมของ ดัชนี MIDX ซึ่ง พวกเขาจัดเก็บข้อมูลเกี่ยวกับวัตถุในชั้นที่แยกจากกัน การใช้ไฟล์บิตแมป ซึ่งช่วยให้สามารถอัปเดตได้เร็วขึ้นเมื่อมีการเพิ่มคอมมิตใหม่ ความก้าวหน้านี้มีความสำคัญสำหรับคลังข้อมูลขนาดใหญ่ที่ต้องการการดำเนินการจัดทำดัชนีอย่างรวดเร็วโดยไม่ต้องสร้างข้อมูลเมตาใหม่ทั้งหมด
การเปลี่ยนกลไกการผสานแบบเรียกซ้ำด้วย ORT อย่างสมบูรณ์
Git 2.50 แนะนำการเปลี่ยนแปลงครั้งสำคัญด้วย การลบเครื่องฟิวชันแบบเรียกซ้ำออกอย่างถาวร แบบดั้งเดิม แทน การใช้ ORT ได้รับการรวมเข้าด้วยกันเป็น เครื่องยนต์ฟิวชันที่ทันสมัย บำรุงรักษาง่าย และมีประสิทธิภาพมากขึ้น ORT ไม่เพียงแต่ให้การวิเคราะห์ความขัดแย้งที่แม่นยำยิ่งขึ้นเท่านั้น แต่ยังช่วยให้คุณตรวจยืนยันได้ว่าสามารถผสานรวมได้หรือไม่โดยไม่ต้องสร้างอ็อบเจ็กต์เพิ่มเติม นอกจากนี้ คำสั่ง merge-tree ยังมีตัวเลือก –quiet เพื่อใช้เป็นตัวตรวจสอบการผสานแบบเงียบโดยไม่ต้องแก้ไขที่เก็บข้อมูล
gitt-diff-pairs: โซลูชันสำหรับปัญหาการปรับขนาด
การตรวจสอบโค้ดถือเป็นหนึ่งในเสาหลักของการพัฒนาแบบร่วมมือกันในยุคใหม่ และความแตกต่างหรือความแตกต่างระหว่างการแก้ไขแต่ละครั้งมีบทบาทสำคัญในกระบวนการนี้ ด้วยการมาถึงของ Git 2.50 จึงมีการแนะนำโซลูชันที่ออกแบบมาเพื่อการปรับขนาดได้ นั่นคือคำสั่ง git-diff-pairs ใหม่
โดยปกติแล้ว หากต้องการเปรียบเทียบระหว่างการแก้ไขสองครั้ง คุณจะใช้คำสั่งเช่น:
git diff HEAD~1 HEAD
การดำเนินการนี้จะสร้างแพตช์ที่สมบูรณ์ซึ่งรวมการเปลี่ยนแปลงทั้งหมดระหว่างการแก้ไขที่ระบุไว้ แม้ว่าจะได้ผลในหลายกรณี แต่ก็อาจเป็นปัญหาด้านประสิทธิภาพเมื่อต้องจัดการกับไฟล์ที่แก้ไขจำนวนมาก
นั่นคือสาเหตุที่ git-diff-pairs ได้รับการออกแบบมาโดยเฉพาะเพื่อรับอินพุตดิบโดยตรงจากเอาต์พุตของ git diff-tree และสร้างแพตช์ที่สอดคล้องกันอย่างมีประสิทธิภาพและแม่นยำ
การใช้งานก็ง่ายเพียง:
git diff-tree -r -z -M HEAD~ HEAD | git diff-pairs -z
คำสั่งนี้ใช้คู่ blob ที่ให้มาและสร้างเอาต์พุต diff ที่แน่นอน โดยรักษาข้อมูลตามบริบทและอนุญาตให้แบ่งงานออกเป็นชุดย่อยๆ ซึ่งจะเปิดประตูสู่การประมวลผลแบบขนาน ปรับปรุงประสิทธิภาพการใช้ทรัพยากร และอำนวยความสะดวกในการปรับขนาดในเครื่องมือที่ใช้ diff เช่น GitLab
คุณสมบัติใหม่สำหรับการทำความสะอาด การกรอง และการบำรุงรักษา
Git 2.50 มีเครื่องมือเพิ่มเติมหลายอย่างที่ออกแบบมาเพื่อปรับปรุงการบำรุงรักษาที่เก็บข้อมูล:
- คำสั่งได้ถูกเพิ่มแล้ว git reflog ดรอปซึ่งช่วยให้คุณลบ reflog ของสาขาที่เจาะจงได้อย่างสมบูรณ์ เหมาะอย่างยิ่งสำหรับการล้างประวัติการทำงานของคุณเมื่อคุณไม่จำเป็นต้องรักษาการอ้างอิงก่อนหน้าอีกต่อไป
- ตัวเลือก -กรอง cat-file –batch พร้อมใช้งานใน git แล้ว ทำให้คุณสามารถกรองผลลัพธ์ตามประเภทของอ็อบเจ็กต์ได้
นอกจากนี้ ยังมีการเน้นการเพิ่มประสิทธิภาพภายในหลายประการ:
- ปรับปรุงการใช้งานลิงก์สัญลักษณ์ด้วยการแคชคำนำหน้าและลดการตรวจสอบซ้ำซ้อน
- การลบการอ้างอิง Perl ออกจากเอกสารและสคริปต์ทดสอบ โดยแทนที่ด้วยฟังก์ชันเชลล์หรือการใช้งาน C ทำให้คอมไพล์ได้ง่ายขึ้นบนระบบที่มีการกำหนดค่าแบบเรียบง่าย
- รวมถึงตัวควบคุม ความแตกต่างของผู้ใช้ เพื่อวิเคราะห์ความแตกต่างในไฟล์ .ini
- ปรับปรุงความเข้ากันได้ของคำสั่ง git send-email กับเซิร์ฟเวอร์ SMTP เช่น Outlook
สุดท้ายนี้ หากท่านสนใจทราบข้อมูลเพิ่มเติม สามารถดูรายละเอียดใน ลิงค์ต่อไปนี้