Git tích hợp
Một dự án Restorm sinh ra để sống trong một kho git. Phần tích hợp đi xa hơn một
lệnh git commit đơn thuần: nó hiểu được định dạng và biết cách giải quyết
xung đột ở mức thực thể nghiệp vụ, chứ không phải ở mức dòng YAML.
Bắt đầu
Section titled “Bắt đầu”Không có gì phải cấu hình. Ngay khi tệp .restorm đang mở nằm trong một kho
git, các bề mặt git sẽ được kích hoạt.
Restorm dùng git cục bộ của bạn: không phải nhập thông tin đăng nhập, cũng
không phải quản lý token trong ứng dụng. Quy tắc rất đơn giản — nếu git push
chạy được trong terminal của bạn thì nó cũng chạy được trong Restorm. Git được
chạy với các lời hỏi bị tắt: một kho đòi mật khẩu sẽ thất bại ngay lập tức kèm
thông báo của git, thay vì làm treo giao diện.
Ô GIT trên thanh trạng thái
Section titled “Ô GIT trên thanh trạng thái”Hai nút, Đẩy và Kéo, mỗi nút mang một chấm tròn (một dấu chấm, không bao giờ là một con số) khi có thứ gì đó cần gửi đi hoặc có một phiên bản mới hơn cần lấy về.
Menu Git trên thanh tiêu đề cung cấp cùng những hành động đó, cộng thêm Làm mới, Đặt lại về phiên bản máy chủ và Lịch sử.

Hộp thoại push hiển thị một thông điệp commit đã soạn sẵn, được sinh ra một cách tất định từ phần diff cấu trúc — không dùng mô hình ngôn ngữ. Mỗi thực thể bị sửa đổi (yêu cầu, kịch bản, thư mục, thư mục biến) một dòng, không bao giờ mỗi trường một dòng.
- Một bộ chọn ngôn ngữ cho thông điệp, độc lập với ngôn ngữ của giao diện, kèm một công tắc để đặt nó làm giá trị mặc định.
- Một tiêu đề sửa được, với bộ đếm gợi ý ở mức 72 ký tự.
- Một phần thân nhiều dòng.
Việc xác nhận sẽ lần lượt: lưu, git add, commit, push.
Restorm lưu trước, rồi mới lấy về và hợp nhất.
Hợp nhất sạch: cây và các tab đang mở được làm mới tại chỗ.
Xung đột: một khung nhìn giải quyết gồm bốn bảng mở ra.

| Bảng | Nội dung |
|---|---|
| Danh sách xung đột | Các thực thể đang xung đột |
| Phiên bản của bạn | Chỉ đọc |
| Phiên bản của họ | Chỉ đọc |
| Đã giải quyết | Sửa được — đây là thứ sẽ được ghi |
Điểm quan trọng: mỗi bảng hiển thị thực thể trong trình biên tập thực sự của
nó — một yêu cầu HTTP trong trình biên tập HTTP, một kịch bản trong trình biên
tập kịch bản. Bạn không giải quyết những dấu <<<<<<< trong YAML, mà so sánh
hai yêu cầu.
Mỗi bên có một nút “dùng phiên bản này”, và những trường khác nhau đều được tô đỏ — khi chỉ một trường khác biệt, bảng sẽ mở thẳng vào tab liên quan.
Tài liệu API của một thư mục biến được giải quyết tự động (phiên bản mới hơn thắng).
Hủy sẽ chạy một lệnh git merge --abort. Nếu bạn đóng ứng dụng giữa chừng
lúc đang giải quyết, ở lần khởi chạy sau Restorm sẽ đề nghị bạn từ bỏ phép hợp
nhất.
Kiểm tra ngầm (semi-pull)
Section titled “Kiểm tra ngầm (semi-pull)”Restorm định kỳ kiểm tra xem có phiên bản mới hơn không — mà không bao giờ tự
hợp nhất. Có ba yếu tố kích hoạt: một thay đổi được quan sát thấy trong .git,
việc mở một tệp, và một bộ hẹn giờ mà tần suất chỉnh được trong
Cài đặt ▸ Git (Off, 15 phút, 30 phút, 1 giờ, 4 giờ, 12 giờ, 24 giờ).
Khi đó một thông báo “Có bản cập nhật” sẽ đề nghị Pull now.
Tệp bị sửa từ bên ngoài
Section titled “Tệp bị sửa từ bên ngoài”Nếu tệp đã thay đổi trên ổ đĩa kể từ lúc được mở, việc lưu sẽ bị từ chối và Restorm hỏi bạn muốn Nạp lại hay Giữ phiên bản của bạn.
Vì sao các bản diff lại dễ đọc
Section titled “Vì sao các bản diff lại dễ đọc”Nhờ hai đặc tính của định dạng, được mô tả trong
Dự án và tệp .restorm: một
thứ tự khóa chuẩn tắc, và các định danh được suy ra một cách ổn định.
Hệ quả: mở rồi lưu lại mà không sửa gì sẽ không tạo ra diff nào, và hai người thêm cùng một yêu cầu vào cùng một chỗ sẽ tạo ra những thực thể mà phép hợp nhất biết cách ghép cặp.
Lịch sử
Section titled “Lịch sử”Git ▸ Lịch sử mở ra một khung nhìn hai ngăn: danh sách các commit kèm một rãnh nhánh, và phần chi tiết ở bên phải. Menu ngữ cảnh của một commit cho phép lấy lại phiên bản đó.
Qua MCP
Section titled “Qua MCP”Bốn công cụ, ở bản Pro: git_commit_push (bước 1 trên 2 — trả về một token
duyệt, tiêu đề, phần thân và diff theo từng thực thể, mà không ghi gì cả),
git_confirm_push (bước 2 trên 2 — bị từ chối nếu dự án đã thay đổi kể từ lúc
duyệt), git_pull và git_resolve_conflicts.
Việc tách làm hai bước là có chủ ý: một tác nhân không thể đẩy đi mà chưa từng trình ra một bản diff trước đó.