Итак, я хочу исследовать применимость git для отслеживания версий некоторых бинарных или текстовых древовидных структур данных. Дело в том, что я хочу, чтобы логика diff была полностью индивидуальной, адаптированной к шаблону структуры данных.
Предположим, что файл, о котором идет речь, является некоторым объектом json, я хочу иметь пользовательский diff для json-файлов. Итак, если у меня есть версия A, как эта:
{ a: 'yes' , b: { 'X': 'unavailable' , 'Y': ready } }
и я применяю следующее изменение:
{ a: 'yes' , b: { 'X': 'unavailable' , 'Y': done } }
то мой diff будет умным, чтобы определить, что изменился только элемент 1. При использовании стандартного diff, если кто-то другой внесет изменение, скажем, в ключ a, элемент [0], то это приведет к возникнет конфликт, который нужно будет объединить вручную. Пользовательский diff будет нацелен на то, чтобы настроить логику diff для определенных типов файлов и их содержимого.
Для двоичных файлов также может быть применено нечто несколько иное.
Цель этого вопроса - узнать, есть ли:
спасибо!
Редактировать Я нашел эту статью, которая, как мне кажется, дает очень широкое представление о том, что меня интересует. Также это, вероятно, признак того, что на самом деле пока нет хорошего решения для этой проблемы.