Vì vậy, tôi muốn điều tra khả năng áp dụng của git đối với việc theo dõi phiên bản của một số cấu trúc dữ liệu cây nhị phân hoặc văn bản nhất định. Vấn đề là tôi muốn rằng logic khác biệt hoàn toàn tùy chỉnh, được thiết kế riêng cho mẫu cấu trúc dữ liệu.phiên bản dữ liệu với git: diff tùy chỉnh cho các tệp cụ thể
Giả sử tập tin trong câu hỏi là đối tượng json nào đó, tôi muốn có một diff tùy chỉnh cho file json vì vậy nếu tôi có phiên bản A như thế này:
{ a: 'yes' , b: { 'X': 'unavailable' , 'Y': ready } }
và tôi áp dụng các thay đổi sau:
{ a: 'yes' , b: { 'X': 'unavailable' , 'Y': done } }
vì vậy sự khác biệt của tôi sẽ rất thông minh để phát hiện ra rằng chỉ có mục 1 được thay đổi. Với mặc định khác, nếu ai đó đã thực hiện thay đổi, ví dụ, trong khóa a, mục [0] thì điều này sẽ tạo ra xung đột cần được hợp nhất thủ công. Tùy chỉnh khác sẽ hướng đến tùy chỉnh logic khác cho các loại tệp và nội dung cụ thể.
Điều gì đó hơi khác đối với tệp nhị phân cũng có thể áp dụng.
Mục đích của câu hỏi này là để xem nếu có:
- cách trong git hiện để hỗ trợ tùy chỉnh này
- dự án, chi nhánh của phát triển git để hỗ trợ tùy chỉnh này
- một số công cụ khác tốt hơn nhằm mục đích cho số này
cảm ơn!
Sửa tôi tìm thấy this article, mà tôi nghĩ rằng đưa ra một rất phạm vi rộng của các loại điều tôi đang tự hỏi về. Ngoài ra nó có lẽ là một dấu hiệu cho thấy thực sự không có giải pháp tốt cho vấn đề này.
cách xa câu trả lời hoàn chỉnh; nhưng đây là một số vấn đề ảnh hưởng đến thuật toán khác biệt của đối tượng cây nói chung (không phải git cụ thể) http://useless-factor.blogspot.com/2008/01/matching-diffing-and-merging-xml.html – lurscher