Управление версиями данных с помощью 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. Но это полезно только для просмотра различий, а не для слияния.

Я не знаю ни о чем, что может вам в этом помочь.

Другие вопросы по тегам