Мой вопрос: есть ли надежная и простая система контроля версий / механизм / платформа / ... для проектов с контентом, который является эффективно монолитным, непрозрачным материалом?
Большинство проектов, над которыми я работаю, содержат путаницу файлов следующих типов:
- Содержимое в виде простого текста (C, Java, ..., файлы данных, сценарии bash, ...)
- Документы MS Office (Word, Excel, Visio, ...)
- Векторные графические файлы (SVG, EPS, ...)
- Файлы моделей Simulink® (.mdl, по формату аналогичные JSON)
- Наша специализированная среда модульного тестирования (сгенерированные файлы XML)
- ... разные. другие вещи с похожими ограничениями
В настоящее время мы всегда помещаем все в один большой репозиторий Subversion. Очевидно, это хорошо работает только для текстовых файлов. Все остальное невозможно объединить, если рассматривать как простой текст.
Для некоторых из них существуют "управляемые" системы контроля версий, которые мы действительно используем поверх subversion. Например, для документов MS Word мы используем функцию "отслеживать изменения". Это фактически стало нашей системой контроля версий, специфичной для документов MS Word. Затем мы создаем копии документа в хранилище Subversion всякий раз, когда какая-либо версия документа должна быть помечена / доставлена.
Точно так же существуют управляемые способы одновременной разработки моделей Simulink, одновременной авторской векторной графики и т.д.
Но, как вы можете себе представить, я очень недоволен этим рабочим процессом. Что-то вроде "отслеживания изменений" не мешает двум пользователям редактировать один и тот же документ одновременно. Изменения обоих не могут быть объединены, и объединение должно быть сделано вручную (я даже не буду упоминать о повреждении документа). То же самое с платформой Simulink; настоящий параллелизм невозможен.
Это просто боль , не говоря уже о том, что она абсолютно неэффективна, поскольку требуется много ручного копирования и перетаскивания файлов, чтобы поддерживать правильность версий всего - наличие всего в хранилище Subversion стало не более чем удобной альтернативой отправке документов по электронной почте. вокруг (что удобно только людям, не управляющим хранилищем ...).
Нечто подобное Sharepoint может решить проблему для документов MS Word, но это не общее решение; у нас все еще есть другие типы файлов, с которыми мы имеем дело. Что-то вроде плагина Subversion /hooks /etc. может сработать, но может быть трудно получить правильные результаты, а также трудно поддерживать в актуальном состоянии, плюс это может быть значительным капиталовложением, поскольку нам, вероятно, потребуется разработать собственные плагины для таких вещей, как файлы моделей Simulink ...
Итак, мой вопрос: есть ли надежная и простая система контроля версий / механизм / платформа / ... для проектов с контентом, который является эффективно монолитным, непрозрачным материалом?