управление версиями данных с помощью git: пользовательский diff для определенных файлов - PullRequest
8 голосов
/ 06 февраля 2012

Итак, я хочу исследовать применимость 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 для поддержки этой настройки
  • какой-то другой инструмент, лучше предназначенный для этого

спасибо!

Редактировать Я нашел эту статью , что, я думаю, дает очень широкий охват того рода вещей, о которых я задаюсь вопросом. Кроме того, это, вероятно, признак того, что на данный момент действительно нет хорошего решения этой проблемы.

1 Ответ

2 голосов
/ 06 февраля 2012

Вы можете создать настраиваемое представление различий для двоичных файлов (раздел "Различающиеся двоичные файлы"), таких как документы Word.Но это полезно только для просмотра различий, но не для слияния .

Я не знаю ничего, что могло бы вам в этом помочь.

...