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