2012-02-05 26 views
5

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.

+0

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

Trả lời

2

Bạn có thể create custom diff view for binary files (phần "Khác biệt tệp nhị phân") như tài liệu Word. Nhưng điều này chỉ hữu ích cho việc xem sự khác biệt, không phải cho việc kết hợp .

Tôi không biết bất cứ điều gì có thể giúp bạn với điều đó.

+0

thú vị, những gì tôi đã viết trên được dựa trên giả định rằng hợp nhất dựa vào công cụ khác để thực hiện công việc của mình – lurscher

Các vấn đề liên quan