Система контроля версий для проектов со смешанным контентом

573
Rody Oldenhuis

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

Большинство проектов, над которыми я работаю, содержат путаницу файлов следующих типов:

  1. Содержимое в виде простого текста (C, Java, ..., файлы данных, сценарии bash, ...)
  2. Документы MS Office (Word, Excel, Visio, ...)
  3. Векторные графические файлы (SVG, EPS, ...)
  4. Файлы моделей Simulink® (.mdl, по формату аналогичные JSON)
  5. Наша специализированная среда модульного тестирования (сгенерированные файлы XML)
  6. ... разные. другие вещи с похожими ограничениями

В настоящее время мы всегда помещаем все в один большой репозиторий Subversion. Очевидно, это хорошо работает только для текстовых файлов. Все остальное невозможно объединить, если рассматривать как простой текст.

Для некоторых из них существуют «управляемые» системы контроля версий, которые мы действительно используем поверх subversion. Например, для документов MS Word мы используем функцию «отслеживать изменения». Это фактически стало нашей системой контроля версий, специфичной для документов MS Word. Затем мы создаем копии документа в хранилище Subversion всякий раз, когда какая-либо версия документа должна быть помечена / доставлена.

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

Но, как вы можете себе представить, я очень недоволен этим рабочим процессом. Что-то вроде «отслеживания изменений» не мешает двум пользователям редактировать один и тот же документ одновременно. Изменения обоих не могут быть объединены, и объединение должно быть сделано вручную (я даже не буду упоминать о повреждении документа). То же самое с платформой Simulink; настоящий параллелизм невозможен.

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

Нечто подобное Sharepoint может решить проблему для документов MS Word, но это не общее решение; у нас все еще есть другие типы файлов, с которыми мы имеем дело. Что-то вроде плагина Subversion / hooks / etc. может сработать, но может быть трудно получить правильные результаты, а также трудно поддерживать в актуальном состоянии, плюс это может быть значительным капиталовложением, поскольку нам, вероятно, потребуется разработать собственные плагины для таких вещей, как файлы моделей Simulink ...

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

0
Как бы ни был интересен этот вопрос и насколько я хотел бы знать ответ, строго говоря, он запрашивает рекомендации по программному обеспечению, которые [не по теме] (http://superuser.com/help/on-topic ). Возможно это могло быть переделано? Raystafarian 10 лет назад 0
@Raystafarian: Вы знаете о стековом сайте, где такие вопросы * разрешены *? Я не задавал этот вопрос по переполнению стека именно по этой причине ... Я спрашиваю, потому что я не уверен, что он * может * быть переработан, потому что цель вопроса - получить рекомендацию для инструмента / метод / ... Rody Oldenhuis 10 лет назад 0
** ЕСЛИ ** он закрывается, единственное, о чем я могу подумать, это попробовать [личную производительность] (http://productivity.stackexchange.com/). На рабочем месте тоже не по теме. * Возможно * [управление проектом] (http://pm.stackexchange.com/). Вы можете посмотреть на администратора базы данных, администратора сервера или даже infosec, чтобы увидеть, будет ли это там по теме, я не уверен. Raystafarian 10 лет назад 0
@Raystafarian: Хорошо, тогда я покажу вопрос на обоих сайтах, и пусть оба сообщества решат, где он подходит лучше всего. Rody Oldenhuis 10 лет назад 0
Не нужно [перекрестная публикация] (http://meta.stackexchange.com/questions/16703/the-ability-to-link-cross-site-duplicates), здесь она может не закрыться! Я уверен, что ПП посчитает это интересным, хотя .. Raystafarian 10 лет назад 0

1 ответ на вопрос

2
Rodney Schuler

For svn you can use file locking on large unmergeable files. This is a property that you apply to the large, unmergeable files. These files will, by default, be read only when checked out. You then svn lock them to make the editable in the working copy and mark them as locked on the server. If somebody else tries to svn lock the file they will get a notice that you have that file locked. You can configure svn to automatically apply the needs lock property based on file extension.

Other version control systems have other answers to this problem.

Похоже на обходной путь, а не на реальное решение ... Часто мы помещаем файлы Word на общий сетевой диск и редактируем непосредственно с этого диска. MS Word блокирует файл для редактирования, предупреждая об этом других пользователей. Тот же механизм, более простая реализация, но имеет тот недостаток, что он только для Word, и документы больше не находятся в хранилище. Я посмотрю на это. К сожалению, git - не вариант, так как мы привязаны напрямую к репозиториям, которые использует наш материнский компьютер :) Rody Oldenhuis 10 лет назад 0