Расширение системы контроля версий с помощью пользовательского дельта-алгоритма - PullRequest
2 голосов
/ 17 марта 2011

Какие зрелые системы контроля версий позволяют переопределять алгоритмы поиска и применения дельты? Неважно, через плагин или через внешний инструмент.

Должна быть возможность переопределить внутренний алгоритм сравнения VCS для определенных типов файлов. Пользовательские дельты должны храниться в хранилище для использования алгоритмом применения дельты.

В моем случае недопустимый внутренний бинарный дифференциал.

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

Ответы [ 3 ]

0 голосов
/ 17 марта 2011

В случае git я не знаю ни одного простого способа переопределить метод вычисления двоичных дельт, которые используются для эффективного хранения в пакетных файлах.(Файлы пакетов создаются большинством транспортов для эффективной передачи данных на сервер и с него.)

Однако вы можете взглянуть на проект bup для git.При этом используется метод прямого создания файлов Git Pack в случае использования Git для резервного копирования огромных объемов данных.Это звучит в целом похоже на то, что вы хотите сделать.

[Я понимаю, что вы явно исключаете это из своего вопроса, но в случае, если другой читатель найдет этот вопрос, который заинтересован в хороших видимых пользователем различиях в двоичных файлах,Я выделю этот полезный пример из Pro Git .]

0 голосов
/ 17 марта 2011

Вы можете написать плагины для Bazaar, которые предоставляют собственные алгоритмы слияния: http://doc.bazaar.canonical.com/development/en/user-guide/hooks.html#example-a-merge-plugin http://doc.bazaar.canonical.com/development/en/user-reference/hooks-help.html#merge-file-content

После быстрого осмотра я не увидел что-то подобное для выполнения различий, но я уверен, что добавить что-то подобное будет несложно. Я знаю, что есть плагины, такие как bzr-tools, которые могут обеспечить альтернативный вывод diff (cdiff, который печатает diff с некоторым цветом).

0 голосов
/ 17 марта 2011

для серверной части: Насколько я знаю (я не эксперт в этом вопросе!), Это нелегко сделать. Таким образом, ваш лучший способ получить исходный код Apache Subversion и изменить / расширить его в соответствии с вашими потребностями. Взглянуть на «Pre-Commit Hooks» - тоже идея.

Для клиентской части: ClearCase имеет несколько хороших дополнительных инструментов слияния, например, офисные документы. Также есть возможность изменить инструмент сравнения / слияния в клиенте Tortoise SVN.

...