มีระบบควบคุมซอร์ส Git 2.43

หลังจากการพัฒนาเป็นเวลาสามเดือน Git 2.43 ระบบควบคุมแหล่งที่มาแบบกระจายก็ได้รับการเผยแพร่แล้ว Git เป็นหนึ่งในระบบควบคุมเวอร์ชันที่ได้รับความนิยม เชื่อถือได้ และมีประสิทธิภาพสูง โดยมอบเครื่องมือการพัฒนาแบบไม่เชิงเส้นที่ยืดหยุ่นตามการแยกสาขาและการรวมเข้าด้วยกัน เพื่อให้มั่นใจถึงความสมบูรณ์ของประวัติและการต่อต้านการเปลี่ยนแปลงย้อนหลัง จึงมีการใช้การแฮชโดยนัยของประวัติก่อนหน้าทั้งหมดในการคอมมิตแต่ละครั้ง นอกจากนี้ยังสามารถรับรองแต่ละแท็กและคอมมิตด้วยลายเซ็นดิจิทัลของนักพัฒนาได้อีกด้วย

เมื่อเทียบกับรุ่นก่อนหน้า เวอร์ชันใหม่นี้มีการเปลี่ยนแปลง 464 รายการ ซึ่งได้รับการพัฒนาโดยนักพัฒนา 80 คน โดย 17 คนเป็นมือใหม่ในโครงการ ฟีเจอร์ใหม่ที่สำคัญประกอบด้วย:

  • ขณะนี้คำสั่ง "git repack" มีตัวเลือก "--filter" และ "--filter-to" ตัวเลือกเหล่านี้ช่วยให้คุณสามารถแพ็ค repository ใหม่ตามตัวกรองอ็อบเจ็กต์ที่ระบุ และหากจำเป็น สามารถย้ายอ็อบเจ็กต์ที่ไม่ตรงตามตัวกรองที่ระบุไปยังตำแหน่งอื่นได้ ตัวเลือกเหล่านี้สามารถใช้เพื่อแบ่ง repository ตามเกณฑ์เฉพาะ (เช่น เพื่อลบอ็อบเจ็กต์ที่ไม่จำเป็นหรือมีขนาดใหญ่เกินไป) ในขณะที่ยังคงรักษาสิทธิ์การเข้าถึงทุกส่วนโดยใช้การโคลนบางส่วน ตัวอย่างเช่น หากต้องการรักษา blob ขนาดเล็กกว่า 1 MB ใน repository และย้ายอ็อบเจ็กต์ขนาดใหญ่อื่นๆ ไปยัง repository แยกต่างหาก คุณสามารถรันคำสั่งต่อไปนี้: $ git init --bare ../backup.git $ git repack -ad --filter='blob:limit=1m' \ --filter-to=../backup.git/objects/pack/pack

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

  • เพิ่มความสามารถในการทำงานกับแพ็คไฟล์หลายไฟล์ที่มีข้อมูลเกี่ยวกับอ็อบเจ็กต์ที่ไม่สามารถเข้าถึงได้ ("cruft packs") ซึ่งไม่ได้ถูกอ้างอิงโดยสาขาหรือแท็กในคลังเก็บ ด้วยตัวเลือกใหม่ "git repack --max-cruft-size" คุณสามารถกำหนดขนาดสูงสุดของแพ็คไฟล์แต่ละไฟล์ และแบ่งฐานข้อมูลของอ็อบเจ็กต์ที่ไม่สามารถเข้าถึงได้ออกเป็นแพ็คไฟล์ขนาดเล็กหลายไฟล์ การใช้แพ็คไฟล์ขนาดเล็กหลายไฟล์แทนที่จะใช้ไฟล์ขนาดใหญ่เพียงไฟล์เดียว ช่วยลดการดำเนินการ I/O ลงอย่างมากเมื่อทำการรีแพ็คคลังเก็บที่มีอ็อบเจ็กต์ที่ไม่สามารถเข้าถึงได้จำนวนมาก เนื่องจากการดำเนินการรีแพ็คแต่ละครั้งไม่จำเป็นต้องเขียนข้อมูลทั้งหมดใหม่
  • เพิ่มการจดจำความพยายามในการดำเนินการยกเลิกการกระทำสองครั้งผ่าน "git revert" และนำข้อเท็จจริงนี้มาพิจารณาเมื่อสร้างข้อความยกเลิกการกระทำ (หากคุณทำซ้ำ "git revert" แทนที่จะเป็น "Revert: Revert: fix bug" ระบบจะแจ้งว่า "Reapply fix bug" และหากคุณย้อนกลับการเปลี่ยนแปลงเป็นครั้งที่สาม - "Revert Reapply fix bug") $ git revert --no-edit HEAD >/dev/null $ git revert --no-edit HEAD >/dev/null $ git log --oneline a300922 (HEAD -> main) ใช้ "fix bug" อีกครั้ง 0050730 Revert "fix bug" b290810 fix bug
  • ตัวเลือก "--rfc" และ "--subject-prefix" สามารถใช้ร่วมกันได้ ตัวอย่างเช่น หากต้องการสร้างอีเมลที่มีคำนำหน้า "[RFC PATCH bpf-next]" ในบรรทัดหัวเรื่อง คุณสามารถระบุ: $ git format-patch --subject-prefix="PATCH bpf-next" --rfc
  • คำสั่ง git log อนุญาตให้ตัวแทน "%(decorate)" แสดงชื่อสาขาที่เกี่ยวข้องเมื่อระบุรูปแบบด้วยตัวเลือก "--format" ตัวอย่างเช่น: $ git log --format='%cr%(decorate) (%h) %s' 3 วันที่ผ่านมา (HEAD -> master, origin/master, origin/HEAD) (e0939bec27) RelNotes: แก้ไขข้อความเล็กน้อยในบันทึกประจำรุ่น 2.43.0 7 วันที่ผ่านมา (แท็ก: v2.43.0-rc1) (dadef801b3) Git 2.43-rc1 7 วันที่ผ่านมา (8ed4eb7538) รวมสาขา 'tb/rev-list-unpacked-fix'
  • เพิ่มความสามารถในการใช้กฎ .mailmap เพื่อระบุรูปแบบที่ระบุผ่านตัวเลือก --format เช่น "%(authorname)" และ "%(committeremail)" ให้กับ "git for-each-ref" และคำสั่งที่คล้ายกัน

ที่มา: opennet.ru

ซื้อโฮสติ้งที่เชื่อถือได้สำหรับไซต์ที่มีการป้องกัน DDoS เซิร์ฟเวอร์ VPS VDS 🔥 ซื้อบริการเว็บโฮสติ้งที่เชื่อถือได้ พร้อมระบบป้องกัน DDoS และเซิร์ฟเวอร์ VPS/VDS | ProHoster