Управление версиями данных с помощью git: пользовательский diff для определенных файлов
Итак, я хочу исследовать применимость 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 будет стремиться настроить логику diff для конкретных типов файлов и содержимого.
Что-то немного другое для двоичных файлов может также применяться.
Цель этого вопроса - увидеть, есть ли:
- способы в текущем git, чтобы поддержать эту настройку
- проекты или ветви разработки git для поддержки этой настройки
- какой-то другой инструмент, лучше ориентированный на это
Спасибо!
Редактировать Я нашел эту статью, которая, я думаю, дает очень широкий охват того, о чем я думаю. Кроме того, это, вероятно, признак того, что пока нет хорошего решения этой проблемы.
1 ответ
Вы можете создать пользовательское представление diff для двоичных файлов (раздел "Различающиеся двоичные файлы"), таких как документы Word. Но это полезно только для просмотра различий, а не для слияния.
Я не знаю ни о чем, что может вам в этом помочь.