- Công cụ giải quyết Git Merge Conflict, hiểu cây bên trong tệp để dung hòa hợp lý các yêu cầu từ cả hai phía
- Có thể bổ sung ngôn ngữ mới theo cách khai báo
- Có thể cấu hình để sử dụng Mergiraf thay cho thuật toán Merge mặc định của Git
- Cải thiện các lệnh Git như
merge, revert, rebase, cherrypick
- Hoặc có thể giữ nguyên hành vi gốc của Git và gọi Mergiraf thủ công khi xảy ra xung đột.
Mục tiêu của Mergiraf
- Không che giấu xung đột
- Các heuristic hợp nhất nhận biết cú pháp đôi khi có thể quá lạc quan và cho rằng xung đột đã được giải quyết
- Khi còn nghi ngờ, Mergiraf ưu tiên giữ lại dấu đánh dấu xung đột trong tệp để bảo toàn trạng thái tốt nhất
- Nếu đã tự giải quyết toàn bộ xung đột, công cụ khuyến nghị xem lại phần dàn xếp bằng lệnh
mergiraf review
- Nếu việc hợp nhất có vẻ sai, có thể dễ dàng báo cáo bằng
mergiraf report
- Đủ nhanh để dùng tương tác
- Hươu cao cổ có thể chạy với tốc độ 60 km/h
- Việc hợp nhất các phiên bản phân nhánh của tệp thường diễn ra thường xuyên mà không bị nhận ra, miễn là không có xung đột
- Mergiraf cố gắng đủ nhanh để không cản trở công việc
- Cởi mở với các phương pháp khác
- Trong nhiều trường hợp, hợp nhất dựa trên dòng hoạt động tốt và không cần thao tác trên cây
- Nếu hợp nhất dựa trên dòng không có xung đột, Mergiraf sẽ trả về kết quả đó (rất nhanh)
- Nếu hợp nhất dựa trên dòng tạo ra khóa trùng lặp, Mergiraf sẽ thực hiện thêm một chút xử lý để giải quyết vấn đề hoặc làm nổi bật bằng dấu đánh dấu xung đột
2 bình luận
Hóa ra hươu cao cổ có thể chạy với tốc độ 60 km/h.
Ý kiến trên Hacker News
Đang làm công việc tương tự SemanticDiff và gặp vấn đề khi dùng tree-sitter và GumTree
Phần kiến trúc của Mergiraf giải thích rất sâu về cách một công cụ phức tạp vận hành
Lý do chọn hươu cao cổ là vì nó có thể nhìn xa nhờ chiều cao, và có trái tim lớn nhất trong số các loài động vật có vú trên cạn
Tỏ ra hoài nghi với lập luận cho rằng trong một số phép chèn thì thứ tự không quan trọng
struct Foo; struct Bar;, Left chènimpl Foo { }còn Right chènstruct Baz;, thì máy tính không nhận ra sự khác biệtCó thiện cảm với việc phát triển merge driver cho Git
printkhác nhau thì có thể tạo ra mã không hợp lệCông cụ nhận biết cú pháp gặp khó khăn khi nhóm mở rộng ngôn ngữ cơ sở để phù hợp với bài toán
Đây có thể là một ý tưởng hữu ích để xử lý xung đột liên quan đến tự động định dạng
Dự định sẽ thử Mergiraf, hiện cũng đang dùng cùng với git-absorb
Hỗ trợ Python có vẻ sẽ hữu ích
Hỗ trợ ngôn ngữ còn hạn chế, nhưng hy vọng sẽ được bổ sung thêm nhiều ngôn ngữ hơn