ระบบควบคุมเวอร์ชัน Jujutsu กำลังได้รับความสนใจเพิ่มขึ้นในชุมชนนักพัฒนา โดยมี Text User Interface (TUI) ใหม่ที่เรียกว่า Jujutsu UI (jjui) โผล่ขึ้นมาเป็นตัวเลือกที่ได้รับความนิยมในหมู่ผู้ใช้ที่ได้ทดสอบตัวเลือกอินเทอร์เฟซหลายรูปแบบ การพัฒนานี้เน้นย้ำถึงความสนใจที่เพิ่มขึ้นในทางเลือกแทนเวิร์กโฟลว์ Git แบบดั้งเดิม และเผยให้เห็นความไม่พอใจอย่างมากต่อแพลตฟอร์มรีวิวโค้ดที่มีอยู่
ความเห็นพ้องต้องกันของชุมชนเกี่ยวกับคุณภาพ TUI
นักพัฒนาที่ได้ทดสอบเครื่องมือ Jujutsu TUI หลายรูปแบบอย่างละเอียดรายงานว่า jjui โดดเด่นในด้านประสิทธิภาพและความใช้งานง่าย ผู้ใช้ชื่นชมอินเทอร์เฟซที่ตอบสนองดี แป้นพิมพ์ลัดที่ใช้งานง่าย และการทำงานที่เสถียรในรีโพซิทอรีต่างๆ เครื่องมือนี้มีฟีเจอร์สำคัญเช่น revision rebasing, change squashing และการจัดการไฟล์แบบโต้ตอบผ่านอินเทอร์เฟซบนเทอร์มินัลที่สะอาดตา
ตัวเลือก TUI อื่นๆ เช่น lazyjj ต้องเผชิญกับการวิจารณ์เรื่องปัญหาประสิทธิภาพและความเสถียร ในขณะที่ทางเลือกคำสั่งบรรทัดที่สร้างด้วย bash scripting ถูกมองว่าไม่น่าเชื่อถือ ความเห็นพ้องต้องกันนี้บ่งบอกว่า jjui ได้จัดการกับความต้องการหลักของนักพัฒนาที่ต้องการอินเทอร์เฟซแบบภาพสำหรับการทำงานของ Jujutsu ได้สำเร็จ
คุณสมบัติหลักของ Jujutsu UI:
- เปลี่ยน revset พร้อมการเติมข้อความอัตโนมัติและการช่วยเหลือเรื่อง signature
- การดำเนินการ rebase แบบโต้ตอบในแผนผัง revision
- การรวม revision พร้อมการเลือกอัตโนมัติ
- การดำเนินการระดับไฟล์ (แยก, กู้คืน, ดูความแตกต่าง)
- การจัดการ bookmark และการเข้าถึง operation log
- หน้าต่างแสดงตัวอย่างพร้อมตัวควบคุมการเลื่อน
ข้อจำกัดของ Stacked PR ใน GitHub ผลักดันการพัฒนาเครื่องมือ
ประเด็นการสนทนาหลักมุ่งเน้นไปที่ความไม่สามารถของ GitHub ในการจัดการ stacked pull requests อย่างมีประสิทธิภาพ ซึ่งเป็นฟีเจอร์ที่นักพัฒนาหลายคนถือว่าจำเป็นสำหรับเวิร์กโฟลว์การพัฒนาสมัยใหม่ ต่างจากระบบรีวิวโค้ดเช่น Gerrit ที่อนุญาตให้รีวิว commit แต่ละตัวได้ โมเดลของ GitHub ถือว่า pull requests เป็นหน่วยเดียวของการเปลี่ยนแปลง
GitHub ไม่เข้าใจว่า commits ทั้งหมดสามารถเปลี่ยนแปลงได้เพื่อวัตถุประสงค์ในการรีวิว นี่คือสิ่งที่ทำให้มันเป็น 'ของเล่น'
ข้อจำกัดนี้กลายเป็นอุปสรรคสำคัญสำหรับทีมที่พิจารณาการใช้งาน Jujutsu ในสภาพแวดล้อมองค์กร การขาดการสนับสนุน stacking ที่เหมาะสมหมายความว่านักพัฒนาจะสูญเสียข้อได้เปรียบส่วนใหญ่ของ Jujutsu เมื่อทำงานกับรีโพซิทอรีที่โฮสต์บน GitHub ทำให้พวกเขาต้องพึ่งพาวิธีแก้ปัญหาชั่วคราวหรือแพลตฟอร์มทางเลือก
การเปลี่ยนแปลงเวิร์กโฟลว์และการปรับตัวของผู้ใช้
ผู้ใช้ Git มานานรายงานว่าการเปลี่ยนไปใช้ Jujutsu รู้สึกเป็นธรรมชาติ เปรียบเทียบกับการขี่จักรยานหลังจากการปรับตัวในช่วงแรก แนวทางของระบบในการจัดการการเปลี่ยนแปลงช่วยขจัดจุดเจ็บปวดหลายอย่างของ Git แบบดั้งเดิม โดยเฉพาะในเรื่องการจัดการ stash และการทำงาน rebase ผู้ใช้บรรยายถึงการใช้เวิร์กโฟลว์ใหม่เช่น Change-Driven Development ที่ empty commits ทำหน้าที่เป็นรายการสิ่งที่ต้องทำภายในสาขา
อย่างไรก็ตาม การเปลี่ยนแปลงไม่ได้ปราศจากความท้าทาย นักพัฒนามักจะดิ้นรนกับการจำที่จะสร้าง revision ใหม่ก่อนทำการเปลี่ยนแปลง และรีโพซิทอรีที่พัฒนามาแล้วบางแห่งมีเครื่องมือที่คาดหวังโครงสร้างไดเรกทอรีของ Git ปัญหาความเข้ากันได้เหล่านี้สามารถแก้ไขได้โดยใช้ colocated repositories แต่มันเป็นจุดเสียดทานสำหรับการใช้งาน
แบ็กเอนด์ทางเทคนิคและการพัฒนาในอนาคต
Jujutsu ทำงานเป็นเลเยอร์อินเทอร์เฟซใหม่บนระบบจัดเก็บของ Git โดยใช้ไลบรารี Gitoxide Rust สำหรับการจัดการออบเจ็กต์ Git เวอร์ชันล่าสุดได้เริ่มรวมการใช้งาน Git binary โดยตรงสำหรับการทำงานเครือข่าย ปรับปรุงความเข้ากันได้กับระบบการตรวจสอบสิทธิ์และโปรโตคอลต่างๆ
การออกแบบที่ไม่ขึ้นกับแบ็กเอนด์ของระบบเปิดความเป็นไปได้สำหรับการปรับปรุงการจัดเก็บในอนาคตที่เกินข้อจำกัดของ Git รวมถึงการสนับสนุนที่ดีขึ้นสำหรับรีโพซิทอรีขนาดใหญ่และการจัดการไฟล์ขนาดใหญ่แบบ native การพัฒนาปัจจุบันรวมถึงขั้นตอนเริ่มต้นสู่การซิงโครไนซ์แบ็กเอนด์ native ซึ่งจะอนุญาตให้เปลี่ยนระหว่างเครื่องต่างๆ ได้อย่างราบรื่นโดยไม่สูญเสียประวัติเฉพาะของ Jujutsu
ความต้องการของระบบ:
- เวอร์ชันขั้นต่ำของ Jujutsu : v0.21+
- เข้ากันได้กับสภาพแวดล้อม terminal
- ทำงานร่วมกับ Git repositories ที่อยู่ในตำแหน่งเดียวกัน
- รองรับระบบการยืนยันตัวตนต่างๆ ผ่าน Git binary
บทสรุป
การโผล่ขึ้นของ Jujutsu UI เป็น TUI ที่ได้รับความนิยมสะท้อนถึงความสนใจของนักพัฒนาในวงกว้างในการปรับปรุงเวิร์กโฟลว์การควบคุมเวอร์ชัน แม้ว่าข้อจำกัดของ GitHub เกี่ยวกับ stacked PRs ยังคงเป็นอุปสรรคสำคัญต่อการใช้งาน แต่ความสำเร็จของเครื่องมือนี้แสดงให้เห็นถึงความต้องการอินเทอร์เฟซที่ดีกว่าสำหรับแนวคิดการควบคุมเวอร์ชันสมัยใหม่ เมื่อระบบนิเวศพัฒนาขึ้น การพัฒนาเหล่านี้อาจมีอิทธิพลต่อวิธีที่แพลตฟอร์มหลักเข้าหาการรีวิวโค้ดและการจัดการการเปลี่ยนแปลง
อ้างอิง: Jujutsu UI