ชุมชนนักพัฒนาแสดงความสนใจที่เพิ่มขึ้นใน Jujutsu ระบบควบคุมเวอร์ชันสมัยใหม่ที่สัญญาว่าจะแก้ไขปัญหาด้านการใช้งานของ Git ที่มีมายาวนาน การอภิปรายล่าสุดเผยให้เห็นรูปแบบที่นักพัฒนาที่ลอง Jujutsu จริงๆ มักจะใช้ต่อไป ในขณะที่ความสงสัยยังคงอยู่ในหมู่ผู้ที่ยังไม่ได้ทดสอบด้วยตนเอง
ประสบการณ์การย้ายที่ไม่ซับซ้อน
หนึ่งในแง่มุมที่น่าสนใจที่สุดจากข้อเสนอแนะของชุมชนคือการเปลี่ยนจาก Git ไป Jujutsu นั้นง่ายอย่างน่าประหลาด นักพัฒนารายงานว่าการเปลี่ยนแปลงต้องใช้ความพยายามน้อยกว่าที่คาดหวัง โดย Jujutsu ทำงานเป็นชั้นบนสุดของ repository Git ที่มีอยู่แทนที่จะต้องย้ายทั้งหมด
ผมเริ่มใช้ Jujutsu เมื่อเร็วๆ นี้และประหลาดใจที่การเปลี่ยนแปลงนั้นไม่ซับซ้อนเลย หากคุณเป็นเหมือนผู้เขียนและได้ยินเรื่องนี้อยู่เรื่อยๆ โดยไม่ได้ลอง ผมแนะนำให้คุณนั่งลงและลองดู – มันใช้ความพยายามน้อยกว่าที่คุณคิดมาก
ระบบใช้ตัวระบุการเปลี่ยนแปลงแทน commit hash แบบดั้งเดิม ซึ่งช่วยให้จัดการประวัติได้อย่างยืดหยุ่นมากขึ้น แนวทางนี้เปิดใช้งานฟีเจอร์เช่น automatic rebasing ของ branch ที่เกี่ยวข้องและการจัดการ patch ที่ง่ายขึ้นโดยไม่มีความซับซ้อนที่มักเกี่ยวข้องกับการดำเนินการขั้นสูงของ Git
คุณสมบัติหลักของ Jujutsu เมื่อเปรียบเทียบกับ Git:
- ใช้ตัวระบุการเปลี่ยนแปลง (change identifiers) แทนการใช้ commit hashes เพื่อการจัดการประวัติที่ยืดหยุ่นมากขึ้น
- การ rebase อัตโนมัติของ branch ที่เกี่ยวข้องเมื่อมีการแก้ไขเปลี่ยนแปลงในส่วนฐาน
- รองรับ stacked pull requests ในตัวโดยไม่ต้องมีการแทรกแซงด้วยตนเอง
- ทำงานเป็นชั้นเพิ่มเติมบน Git repositories ทำให้สามารถย้ายข้อมูลแบบค่อยเป็นค่อยไปได้
- เข้ากันได้กับระบบ review และ CI/CD pipelines ที่ใช้ Git อยู่เดิม
รูปแบบการยอมรับของชุมชน
แนวโน้มที่น่าสนใจได้เกิดขึ้นในชุมชนนักพัฒนาเกี่ยวกับการยอมรับ Jujutsu ผู้ที่มีประสบการณ์ตรงกับเครื่องมือนี้รายงานผลลัพธ์ที่ดีและการใช้งานต่อเนื่อง ในขณะที่ความต่อต้านมาจากนักพัฒนาที่ยังไม่ได้ลองเป็นหลัก สิ่งนี้แสดงให้เห็นว่าประโยชน์ของ Jujutsu จะชัดเจนผ่านการใช้งานจริงมากกว่าการเปรียบเทียบทางทฤษฎี
เครื่องมือนี้ดึงดูดนักพัฒนาที่ทำงานกับกลยุทธ์ branching ที่ซับซ้อนและ workflow แบบ patch-based เป็นพิเศษ ฟีเจอร์เช่น megamerge workflow และการจัดการ stacked pull request ที่ดีขึ้นกำลังดึงดูดความสนใจจากทีมที่จัดการกับกระบวนการพัฒนาที่ซับซ้อน
ข้อจำกัดปัจจุบัน:
- ยังไม่มีการรองรับ submodule
- ต้องเรียนรู้ไวยากรณ์คำสั่งและแนวคิดใหม่
- ระบบนิเวศมีขนาดเล็กกว่าเมื่อเปรียบเทียบกับเครื่องมือมากมายของ Git
- การยอมรับที่จำกัดทำให้มีทรัพยากรชุมชนและบทช่วยสอนน้อยกว่า
การผสานรวมกับ Workflow ที่มีอยู่
Jujutsu รักษาความเข้ากันได้กับระบบที่ใช้ Git อยู่ รวมถึงแพลตฟอร์มการตรวจสอบโค้ดยอดนิยมอย่าง GitHub ระบบแปลง bookmark ภายในเป็น Git branch ปกติ ทำให้ทีมสามารถใช้ Jujutsu โดยไม่รบกวนกระบวนการตรวจสอบปัจจุบันหรือ CI/CD pipeline
อย่างไรก็ตาม ข้อจำกัดบางอย่างยังคงมีอยู่ การสนับสนุน submodule ยังคงรอดำเนินการ ซึ่งป้องกันการแทนที่ Git อย่างสมบูรณ์สำหรับโปรเจกต์ที่พึ่งพาฟีเจอร์นี้อย่างหนัก แม้จะมีช่องว่างดังกล่าว เครื่องมือยังคงพัฒนาต่อไปด้วยการพัฒนาที่ใช้งานอยู่เพื่อแก้ไขส่วนที่ขาดหายไป
ความสนใจที่เพิ่มขึ้นใน Jujutsu สะท้อนถึงความปรารถนาที่กว้างขึ้นในชุมชนนักพัฒนาสำหรับเครื่องมือควบคุมเวอร์ชันที่รักษาพลังของ Git ไว้ในขณะที่เสนอการใช้งานที่ดีขึ้น เมื่อนักพัฒนาจำนวนมากขึ้นทดลองกับระบบนี้ ข้อได้เปรียบเชิงปฏิบัติก็ชัดเจนขึ้น ซึ่งอาจส่งสัญญาณถึงการเปลี่ยนแปลงในวิธีที่ทีมเข้าหาการควบคุมเวอร์ชันในโปรเจกต์ซอฟต์แวร์ที่ซับซ้อน
อ้างอิง: Jujutsu + Radicle = ❤️