- Không cần clone cục bộ; trực tiếp truyền luồng ref và object từ remote nguồn sang remote đích, không checkout kho lưu trữ xuống đĩa cục bộ
- Với đường truyền Relay, dữ liệu pack từ
upload-pack của nguồn được chuyển thẳng sang receive-pack của đích, nên mức dùng bộ nhớ giữ ổn định bất kể kích thước kho lưu trữ
- Khi không thể relay (force, prune, delete, v.v.), dùng fallback Materialized: fetch object vào store
go-git trong bộ nhớ, sau đó mã hóa packfile và push; có thể giới hạn bộ nhớ bằng --materialized-max-objects
- Chỉ với
git-sync sync có thể xử lý từ seed ban đầu cho target rỗng đến đồng bộ liên tục; có thể xem trước trước khi push bằng git-sync plan
git-sync replicate là chế độ nghiêm ngặt, đồng bộ ref ở đích khớp hoàn toàn với nguồn, nhưng sẽ thất bại nếu cần materialize cục bộ
- Hỗ trợ mọi thao tác quản lý ref như tạo ref, cập nhật, cập nhật cưỡng bức bằng
--force, xóa bằng --prune, v.v.
- Mọi thao tác đều được lập kế hoạch trước khi push và cung cấp đầu ra JSON có kiểu, có thể nối thẳng vào pipeline CI/tự động hóa
- Cũng có thể nhúng như thư viện Go, cung cấp API ổn định như
Probe, Plan, Sync, Replicate
- Chỉ hỗ trợ một chiều, không hỗ trợ SSH (chỉ Smart HTTP/HTTPS), không có tính năng daemon/theo dõi, chạy theo kiểu one-shot
- Giấy phép MIT
1 bình luận
Chắc là làm ra vì
worktreeđang thịnh hành. Phải thử mới được!