Bối cảnh quản lý phiên bản, vốn lâu nay bị thống trị bởi Git, đang chứng kiến một đối thủ thú vị là Jujutsu (jj), một VCS thế hệ tiếp theo đang thu hút sự chú ý thông qua việc được cộng đồng tự nguyện áp dụng và sự hậu thuẫn đáng kể từ các tập đoàn. Công nghệ này gần đây đã gây chú ý khi Steve Klabnik, nhà vận động nổi tiếng cho Rust và đồng tác giả cuốn sách The Rust Programming Language, thông báo rời Oxide để gia nhập ERSC, một công ty mới đang xây dựng một nền tảng cộng tác dành cho nhà phát triển tập trung vào jj.
Các Mốc Thời Gian Áp Dụng Nổi Bật:
- 2012: Rust 0.5 được phát hành (bối cảnh cho khung đánh giá công nghệ của Klabnik)
- Gần đây: jj chuyển từ GitHub cá nhân sang tổ chức jj-vcs
- 2024: Hội nghị jj đầu tiên được tổ chức
- 2025: Klabnik công bố chuyển sang ERSC (có hiệu lực vào tháng tới)
- Hiện tại: Sự áp dụng ngày càng tăng tại Google và thông qua các cộng đồng cơ sở
Tại sao các nhà phát triển đang đón nhận Jujutsu
Các thảo luận trong cộng đồng tiết lộ rằng sức hấp dẫn của jj nằm ở cách tiếp cận độc đáo đối với quản lý phiên bản, bằng cách nào đó vừa đơn giản hơn lại vừa mạnh mẽ hơn Git. Người dùng báo cáo rằng jj loại bỏ nhiều điểm phiền toái của Git trong khi giới thiệu những cải tiến về quy trình làm việc mang tính cách mạng. Tính năng rebase tự động nổi bật như một lợi thế lớn - khi bạn chỉnh sửa các commit ở giữa một nhánh, jj tự động lan truyền những thay đổi đó qua các commit phụ thuộc, loại bỏ các chuỗi rebase thủ công vốn là cơn ác mộng trong quy trình làm việc với Git.
Theo một cách nào đó, nó rất tự do. Bạn có thể làm mọi thứ bạn có thể làm với git, nhưng một số thứ trong đó không yêu cầu nhiều bước hoặc lặp lại cùng một hành động nhiều lần. jj rebase + xung đột có thể commit + jj undo = sự tự do và an tâm.
Lệnh jj undo đã trở nên đặc biệt được yêu thích trong số những người áp dụng. Không giống như các thao tác đôi khi không thể đảo ngược của Git, jj duy trì một nhật ký hoạt động cho phép người dùng thử nghiệm một cách an toàn, biết rằng họ luôn có thể quay lại các trạng thái trước đó bất kể họ đã thực thi những lệnh gì. Sự an toàn này khuyến khích việc tái cấu trúc và khám phá mạnh mẽ hơn.
Các Tính Năng Chính Của Jujutsu (jj) So Với Git:
- Tự động rebase theo tầng: Chỉnh sửa commit sẽ tự động cập nhật các commit phụ thuộc
- Nhật ký thao tác: Lịch sử đầy đủ của tất cả các thao tác trên repository
- Hoàn tác toàn diện:
jj undocó thể hoàn tác bất kỳ thao tác nào, không chỉ commit - Backend linh hoạt: Hoạt động với các repository Git hoặc các backend khác như Piper của Google
- Quản lý xung đột: Cho phép commit các xung đột để có thể gửi công việc chưa hoàn thiện
- Không có staging area: Loại bỏ bước
git addkhỏi quy trình làm việc
Chiến lược áp dụng từng bước và sự hậu thuẫn của tập đoàn
Lợi thế chiến lược nhất của Jujutsu có lẽ là khả năng tương thích của nó với các kho lưu trữ Git, cho phép các nhóm áp dụng nó một cách gia tăng mà không làm gián đoạn các quy trình làm việc hiện có. Điều này tương phản rõ rệt với các công cụ VCS thế hệ mới khác yêu cầu di chuyển toàn bộ hệ sinh thái. Tại Oxide, Klabnik và các đồng nghiệp đã chứng minh mô hình áp dụng dần dần này, bắt đầu với các nhà phát triển cá nhân và mở rộng một cách hữu cơ.
Việc Google áp dụng nội bộ một cách đáng kể cung cấp sự xác nhận quan trọng. Mặc dù trong ngữ cảnh này, jj giao tiếp với hệ thống backend độc quyền Piper của Google thay vì Git, nhưng quy mô sử dụng trong một trong những kho lưu trữ đơn (monorepo) lớn nhất thế giới chứng minh tính sẵn sàng cho doanh nghiệp của công cụ. Sự hậu thuẫn của tập đoàn này, kết hợp với sự nhiệt tình từ cộng đồng, tạo ra một động lực tăng trưởng mạnh mẽ gợi nhớ đến những thành công ban đầu của các ngôn ngữ lập trình.
Chặng đường phía trước: Thách thức và Cơ hội
Bất chấp sự nhiệt tình ngày càng tăng, jj phải đối mặt với một số rào cản trong việc áp dụng. Đường cong học tập tỏ ra dốc nhất đối với các chuyên gia Git, những người phải quên đi các quy trình làm việc đã ăn sâu. Như một bình luận viên đã nhận xét, Chính những người thực sự hiểu biết sâu về cấu trúc nội bộ của Git và đã dành thời gian, tâm huyết cho quy trình làm việc của họ mới có thể gặp chút khó khăn với jj vì jj khác biệt. Người mới làm quen với quản lý phiên bản thường thấy jj trực quan hơn.
Việc phát triển hệ sinh thái công cụ vẫn còn rất quan trọng. Các thành viên cộng đồng đã xác định nhu cầu về các tích hợp IDE tốt hơn, đặc biệt là một tiện ích mở rộng VSCode mạnh mẽ, và sự nhận biết tốt hơn từ các LLM. Hiện tại, các trợ lý lập trình AI thường không nhận ra các lệnh jj hoặc ảo giác ra cú pháp không chính xác, tạo ra sự cản trở cho các nhà phát triển đã quen với các quy trình làm việc có sự hỗ trợ của AI.
Nền tảng ERSC sắp tới đại diện cho nỗ lực đầy tham vọng nhất để xây dựng một hệ sinh thái toàn diện xung quanh jj. Mặc dù thường được mô tả như jjhub trong các cuộc thảo luận cộng đồng, nền tảng này nhằm mục đích cung cấp nhiều hơn là chỉ chức năng giống GitHub cho các kho lưu trữ jj. Tính năng chính xác vẫn chưa được xác định, nhưng tâm lý cộng đồng rất ủng hộ dữ liệu đánh giá mã được lưu trữ cục bộ, thiết kế ưu tiên CLI và khả năng hoạt động ngoại tuyến hàng đầu.
Sự tương đồng trong Cộng đồng với thời kỳ đầu của Rust
Động lực cộng đồng của jj giống một cách đáng kể với thời kỳ hình thành của Rust. Cả hai dự án đều thu hút những người áp dụng sớm đầy nhiệt huyết, những người đánh giá cao không chỉ giá trị kỹ thuật mà còn cả văn hóa cộng đồng thân thiện. Sự tham gia của Klabnik phản ánh sự vận động ban đầu của ông cho Rust, cho thấy ông nhìn thấy tiềm năng tương tự trong cách tiếp cận giải quyết các vấn đề cơ bản về quy trình làm việc của jj.
Sự so sánh cũng mở rộng sang các mô hình áp dụng. Giống như Rust thời kỳ đầu, jj thu hút các nhà phát triển thất vọng với những hạn chế của công cụ hiện có nhưng đòi hỏi sự kiên nhẫn trong giai đoạn hệ sinh thái trưởng thành. Sự hiện diện của những người bảo trì lõi tận tâm, bao gồm người sáng tạo Martin và giờ là Klabnik, cung cấp sự ổn định trong giai đoạn tăng trưởng này.
Khi bối cảnh quản lý phiên bản phát triển, jj đại diện cho thách thức đáng tin cậy nhất đối với sự thống trị của Git kể từ Mercurial. Sự kết hợp độc đáo giữa đổi mới kỹ thuật, chiến lược áp dụng thực tế và sự hỗ trợ ngày càng tăng từ các tập đoàn định vị nó như một công nghệ đáng để theo dõi sát sao trong những năm tới.
Tham khảo: I see a future in jj
