2012-02-05 13 views
5

Tak więc, chcę zbadać możliwość zastosowania git do śledzenia wersji niektórych struktur danych drzewa binarnego lub tekstowego. Chodzi o to, że chcę, aby logika diff była całkowicie niestandardowa, dostosowana do wzorca struktury danych.wersjonowanie danych za pomocą git: niestandardowe różnice dla określonych plików

Załóżmy plik w pytaniu jest pewien obiekt JSON, chcę niestandardową diff plików json więc jeśli mam wersja A jak to:

{ a: 'yes' , b: { 'X': 'unavailable' , 'Y': ready } } 

i zastosować następujące zmiany:

{ a: 'yes' , b: { 'X': 'unavailable' , 'Y': done } } 

, więc moje różnice byłyby sprytne, by zauważyć, że zmienił się tylko element 1. Z domyślną wersją diff, jeśli ktoś inny dokonał zmiany, powiedzmy, w kluczu a, pozycja [0], to spowodowałoby to konflikt , który musi zostać ręcznie scalony. Różnica niestandardowa zmierzałaby do dostosowania logiki diff do określonych typów plików i zawartości.

Może się również zdarzyć coś nieco innego w przypadku plików binarnych.

Celem tego pytania jest sprawdzenie, czy istnieją:

  • sposoby w bieżącym git na poparcie tego dostosowywania
  • projektów lub gałęzie rozwoju git na poparcie tego dostosowywania
  • jakieś inne narzędzie lepiej celem było to

dziękuję!

Edit znalazłem this article, co moim zdaniem daje bardzo szeroki zakres rodzaju rzeczy zastanawiam. Jest to prawdopodobnie znak, że tak naprawdę nie ma na razie dobrego rozwiązania tego problemu.

+0

daleko od pełnej odpowiedzi; ale tutaj są pewne problemy, które wpływają na algorytmy diff obiektu drzewa ogólnie (nie git specyficzne) http://useless-factor.blogspot.com/2008/01/matching-diffing-and-merging-xml.html – lurscher

Odpowiedz

2

Możesz create custom diff view for binary files (sekcja "Różne pliki binarne"), podobnie jak dokumenty Word. Ale jest to użyteczne tylko dla oglądania różnic, a nie dla łączenia.

Nie wiem o niczym, co może ci w tym pomóc.

+0

ciekawe, co ja napisałem powyżej opierało się na założeniu, że merge opiera się na narzędziu diff, aby wykonać swoją pracę – lurscher

Powiązane problemy