2

Я работаю в инженерной лаборатории, а не в лаборатории информатики. Таким образом, наше внутреннее программное обеспечение не является поставляемым продуктом. Вместо этого внутреннее программное обеспечение используется для анализа технических проблем, и мы доставляем результаты.Контроль версий для нескольких экземпляров кода разработки

Это делает управление версиями живым адом. Или, может быть, я просто должен сказать, что стандартная древовидная структура управления версиями «trunk и branch», похоже, не применяется. Я надеюсь, что кто-то может предложить лучший способ сделать что-то.

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

Аналогично, внутренний код всегда развивается по мере добавления новых возможностей. Многие из них должны быть объединены в багажник, чтобы они были доступны для будущих приложений. Тем не менее, есть также немало случайных хаков, которые сундук не нужно видеть.

Как мы должны организовать этот беспорядок? Очевидно, чем проще, тем лучше.

ответ

1

Мы действительно стараемся для наших проектов отмежеваться:

  • исходных файлы (управляемые в любом VCS вашего выбора, как SVN)
  • конфигурационных файлов (специфических к команде или окружающей среде)

Филиалы предназначены для усилий разработчиков, а те «входные файлы, файлы времени выполнения и файлы последующей обработки» будут развиваться в своем собственном темпе.

Для этого типа файла, то, что нам удалось в VCS является:

  • шаблоны
  • скриптов, способным принять этот шаблон и генерировать (частное, как в не версионируется) конфигурационный файл с правильные значения в нем.
    Значения поступают из другого ссылочного материала, такого как база данных, где команды (или администраторы среды) могут обновлять их по своему усмотрению, не заботясь о контроле/регистрации/объединении.
    Эта база данных может быть версионируются в своих VCS, если это необходимо (см это SO question, например, или, в качестве альтернативы, that one)
+0

Значит, вы бы предложили три отдельных дерева? Дерево исходного файла, дерево шаблонов и сценариев и дерево проекта (например, набор тегов), содержащий версии исходного и конфигурационного файлов для конкретных случаев? – weymouth

+0

@weymouth: нет, источник, шаблон и скрипты могут находиться в одном и том же дереве, потому что они связаны друг с другом. У вас есть одно дерево и база данных. Вам нужно соглашение, чтобы получить правильные значения из базы данных для данной древовидной версии. – VonC

+0

ОК, я посмотрю на SQL. благодаря – weymouth

0

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

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

Что касается структуры хранилища, по крайней мере, глядя на подрывную деятельность, существуют только условные обозначения, но нет строгих правил, накладываемых инструментом. Как насчет того, что дерево называется «trunk», где управляется весь «общий код».

Для каждой инженерной задачи создана ветка. Это не что иное, как «папка проекта» с контролем версий.Исходный код, относящийся к другим проектам, будет объединен обратно в багажник.