Организация проекта, который использует несколько языков? - PullRequest
5 голосов
/ 02 февраля 2010

В настоящее время я работаю над проектом, в котором есть компоненты на Perl, .NET, C / C ++ и Java. Эти компоненты взаимосвязаны, но не привязаны к одному и тому же графику выпуска. Из-за очень разных требований к среде сборки / тестирования, объединить их все в одну иерархию / bin / src / lib / etc / tests немного громоздко.

Какие хорошие организационные иерархии использовать в управлении исходным кодом при работе с проектом такого рода? В настоящее время я склоняюсь к каждому языку, имеющему свою ветвь:

репо / project1 / Perl / главный /...

репо / project1 / .NET / главный /...

репо / project1 / Java / главный /...

Как изменилась бы ваша рекомендуемая иерархия, если бы у них был привязанный график выпуска?

1 Ответ

2 голосов
/ 02 февраля 2010

Я думаю, что вы изложены на линии. Если вы выпускаете проект в целом со всеми компонентами, в отличие от отдельного выпуска каждого компонента, тогда я мог бы использовать svn: externals для разных мест репо или совершенно разных репозиториев, а затем просто связать сборку через внешнюю версию с последней совместимой маркированной версией компонента. , Или, используя git, используйте субмодули, чтобы сделать то же самое.

/repo/project1
  trunk/
    svn:external .Net /repo/project1/components/.Net
    svn:external perl /repo/project1/components/perl
    svn:external Java /repo/project1/components/Java
    -- other integration code or what have you --
  tags/
  branches/
  components/
    .Net/
      trunk/
      tags/
      branches/
    Java/
      trunk/
      tags/
      branches/
    perl/
      trunk/
      tags/
      branches/

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

...