Rift: Giải pháp thay thế Git Worktrees hiệu quả hơn với Copy-on-Write

Phần mềm01 tháng 6, 2026·3 phút đọc

Rift là công cụ dòng lệnh mới giúp quản lý không gian làm việc mã nguồn nhanh chóng và tiết kiệm dung lượng hơn so với Git Worktrees. Hỗ trợ macOS và Linux, công cụ này sử dụng tính năng Copy-on-Write để tạo snapshot tức thì và cung cấp API cho Node.js hoặc Bun.

Rift: Giải pháp thay thế Git Worktrees hiệu quả hơn với Copy-on-Write

Rift là một công cụ dòng lệnh (CLI) và thư viện mới được thiết kế để quản lý các không gian làm việc (workspaces) mã nguồn một cách tối ưu. Nó hoạt động như một giải pháp thay thế hoặc nâng cấp cho Git Worktrees, tập trung vào tốc độ xử lý và hiệu quả lưu trữ nhờ tận dụng tính năng Copy-on-Write của hệ thống tệp.

Các tính năng nổi bật

Rift hướng đến việc giải quyết các vấn đề về tốc độ và dung lượng khi phát triển phần mềm:

  • Copy-on-Write (Sao chép khi ghi): Giúp tiết kiệm đáng kể dung lượng đĩa cứng bằng cách chỉ lưu trữ sự thay đổi của dữ liệu thay vì sao chép toàn bộ.
  • Tốc độ cực nhanh: Có thể tạo không gian làm việc mới trong vòng dưới 0,1 giây, ngay cả với các thư mục có dung lượng lên tới 10GB.
  • Hỗ trợ đa nền tảng: Hiện tại công cụ đang hỗ trợ macOS và Linux (với hệ thống tệp btrfs).
  • Tích hợp API: Có thể sử dụng như một thư viện FFI (Foreign Function Interface) với Bun hoặc Node.js.

Cách thức hoạt động trên từng nền tảng

Rift tận dụng các tính năng hệ thống tệp tiên tiến của từng hệ điều hành để đạt hiệu suất cao nhất:

  • Linux x64: Sử dụng btrfs writable snapshots. Lệnh rift init sẽ chuyển đổi một thư mục thường thành btrfs subvolume.
  • macOS (arm64/x64): Sử dụng APFS clonefile. Lệnh rift init sẽ đăng ký thư mục nguồn.
  • Windows x64: Gói phần mềm đã được xuất bản nhưng tính năng tạo không gian làm việc chưa được triển khai ở thời điểm hiện tại.

Hướng dẫn sử dụng cơ bản

Để cài đặt Rift, người dùng có thể sử dụng npm hoặc bun:

npm install -g rift-snapshot
# hoặc
bun add -g rift-snapshot

Các lệnh chính trong CLI bao gồm:

  • Khởi tạo: rift init để thiết lập thư mục gốc. Lệnh này sẽ tự động chọn thư mục Rift hiện có hoặc thư mục gốc của Git gần nhất.
  • Tạo workspace: rift create để sao chép không gian làm việc hiện tại. Trên Linux, nó tạo một btrfs snapshot có thể ghi; trên macOS, nó sử dụng APFS clonefile. Nếu workspace là một kho chứa Git, workspace mới sẽ có detached HEAD và giữ nguyên trạng thái index.
  • Quản lý: rift list để liệt kê các workspace con đang hoạt động, rift ancestors để xem các workspace cha, và rift remove để xóa workspace.

JavaScript API

Rift không chỉ là công cụ dòng lệnh mà còn cung cấp API mạnh mẽ cho các nhà phát triển JavaScript thông qua FFI.

Ví dụ sử dụng:

import { create, list, remove, gc } from 'rift-snapshot';

const workspace = create({ from: process.cwd(), name: 'schema-work' });
console.log(list({ of: process.cwd() }));
remove({ at: workspace });
gc();

Đối với Node.js, việc này yêu cầu phiên bản 26.1 trở lên và cần bật cờ thử nghiệm --experimental-ffi.

Kết luận

Với khả năng tạo snapshot gần như tức thì và tối ưu hóa dung lượng lưu trữ, Rift là một công cụ hữu ích cho các lập trình viên thường xuyên phải làm việc trên nhiều nhánh (branch) hoặc ngữ cảnh mã nguồn khác nhau cùng một lúc, đặc biệt là những người phát triển trên môi trường Linux và macOS.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗