Как вы организуете несколько проектов на одном SVN-сервере? - PullRequest
1 голос
/ 16 июля 2009

Когда у вас есть несколько связанных проектов (идентифицируемых, автономных приложений, которые совместно используют библиотеки), как вы готовите структуру каталогов вашего сервера SVN? По ветке> проект? По проекту> филиал? Что-то совершенно другое? Или лучше иметь один SVN-сервер для каждого проекта? (Учтите, что некоторые проекты тесно связаны между собой)

Ответы [ 9 ]

10 голосов
/ 16 июля 2009

Стандартное соглашение

  • project1
    • филиалы
    • метка
    • багажник
  • project2
    • ветви * * 1016
    • метка
    • багажник

внутри одного репо. Поскольку это наиболее распространенное соглашение, некоторые инструменты просто ожидают, что ваши проекты будут размечены таким образом.

К каким проектам принадлежит репо - это скорее суждение. Лично я бы начал с одного репо для всех проектов, управляемых одной и той же группой, например, командой, подразделением или компанией.

7 голосов
/ 16 июля 2009

Ознакомьтесь с книгой Subversion, в которой есть раздел Рекомендованный макет репозитория

2 голосов
/ 16 июля 2009

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

2 голосов
/ 16 июля 2009

Этот вопрос получает целый раздел в книге SVN. Я бы порекомендовал начать с него и спросить обо всем, что не ясно или конкретно для вашего проекта.

1 голос
/ 16 июля 2009

Как человек, который поддерживает большие репозитории SVN, позвольте мне сказать вам, НЕ используйте объединенную магистраль Все операции будут выполняться намного медленнее. Кроме того, извлечение одного проекта из большого репо не только утомительно и обидно, но и приведет к космическим затратам, когда вы делаете в конечном итоге захотите отделить даже один проект.

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

Ленивый не является адекватной заменой организованным.

1 голос
/ 16 июля 2009

Для проектов, которые тесно связаны, я рекомендую:

root > branch > project

Таким образом, можно проверить одну ветку и получить весь код, текущий в этой ветке.

1 голос
/ 16 июля 2009
  • root / trunk / projectfolders

  • root / branch / projectfolders

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

0 голосов
/ 16 июля 2009

Мы настроили репозитории для каждого проекта, поэтому у каждого могут быть свои собственные ветки / теги и т. Д.

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

0 голосов
/ 16 июля 2009

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

...