Версионирование, когда задействованы двоичные и текстовые файлы? - PullRequest
2 голосов
/ 17 февраля 2011

У меня есть проект, в котором мне нужно сохранить изменения как текстовых, так и двоичных файлов. У меня есть пара вариантов:

  1. Использовать патчи
  2. Используйте систему управления версиями, такую ​​как git или hg.

Для моих целей патчи - лучший вариант, если это были только текстовые файлы. Однако, поскольку есть изображения, которые могут быть заменены / добавлены / удалены, что является лучшим способом?

Существует ли чистая утилита diff / patch, которая может также позаботиться о двоичных различиях (без необходимости указывать, что это двоичный файл - я должен иметь возможность просматривать весь каталог, а не отдельные файлы, которые я нельзя с diff в bash в бинарном режиме) и использовать их как патчи? Если нет , какая система контроля версий является более надежной, когда речь идет о двоичных файлах?

Ответы [ 3 ]

2 голосов
/ 17 февраля 2011

Mercurial имеет понятие очереди исправлений (с включенным расширением mq), в значительной степени вдохновленное quilt .
Это позволяет вам управлять своими исправлениями несколькими способами:

  • Использовать одну очередь исправлений и последовательно указывать в ней все ваши порядки исправлений
  • Использовать несколько очередей исправлений с помощью команды qqueue и группировать исправления по любым критериям.

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

Вы можете найти гораздо больше полезной информации об управлении очередями исправлений в Учебное пособие Стива Лоша по ртутной очереди .

2 голосов
/ 17 февраля 2011

И Git, и Mercurial могут легко обрабатывать как текстовые, так и двоичные файлы.Используйте то, что вы предпочитаете.И да, VCS - правильный выбор.

0 голосов
/ 17 декабря 2014

Если вам не нравится VCS как таковой, попробуйте использовать FTP-сервер, содержащий исправления. Номера версий могут использоваться как имена каталогов. Эта система может быть подкреплена сценарием, который последовательно применяет исправления на основе имен каталогов.

В проекте, над которым я работаю, патчи базы данных применяются таким же образом. Однако они поддерживаются внутри VCS. Файл может использоваться для поддержки текущей версии, которая будет прочитана сценарием, чтобы решить, какой патч применить.

...