Мы используем
/repos/projectA/component1/trunk - branches - tags
/repos/projectA/component2/trunk - branches - tags
/repos/projectB/component3/trunk - branches - tags
/repos/projectB/component4/trunk - branches - tags
Что я начинаю жалеть. Это должно быть более плоским. Это было бы лучше.
/repos/projectA/trunk - branches - tags
/repos/projectB/trunk - branches - tags
/repos/component1/trunk - branches - tags
/repos/component2/trunk - branches - tags
/repos/component3/trunk - branches - tags
/repos/component4/trunk - branches - tags
Почему? Продукты (компоненты, готовое программное обеспечение) продолжаются вечно. Проекты приходят и уходят. В прошлом году есть только одна команда разработчиков, создающая продукт QUUX. В следующем году эта команда разгоняется, и один или два человека поддерживают QUUX. В следующем году будут два крупных проекта расширения QUUX.
Учитывая, что временная шкала, должна ли QUUX появляться в трех репозиториях проекта? Нет, QUUX не зависит от какого-либо конкретного проекта. Верно, что в проектах есть рабочие продукты (документы, незавершенные работы и т. Д.), Которые являются частью выполнения проделанной работы, но не являются фактической целью работы. Следовательно, репозитории «projectX» для этого материала - материал, который никто не будет заботиться после завершения проекта.
Я работал над одним продуктом, который имел три команды. Большая проблема с координацией работы, потому что каждый проект управлял ее репозиторием независимо. Были межгрупповые выпуски и межгрупповая координация. В конце концов, это предполагалось для одной части программного обеспечения. Однако, как вы можете догадаться, это были три части программного обеспечения со странными перекрытиями и избыточными возможностями.
Простая обучающая черепаха по структурированию вашего репозитория svn. В основном ВСЕГДА лучше использовать мультипроектную структуру http://www.deaddevssociety.com/2010/08/create-subversion-repository.html – 2010-08-20 10:01:59