Я пытаюсь создать сплошную структуру хранилища SVN и стратегию ветвления для небольшой группы из четырех человек. У нас есть четыре крупных и несколько второстепенных проектов в разработке в любой момент времени, и часто существует некоторое совпадение между проектами. Наша текущая стратегия полностью неэффективна и состоит в том, что каждая из этих папок (примерно 15 или около того) находится под одной версией «trunk». Это означает, что всякий раз, когда мы вступаем в ветвь, мы делим все 15 проектов (для обновления рабочей копии требуется 20 минут, чтобы развернуть ветку, чтобы это было в перспективе).Структура проекта SVN и стратегия ветвления для нескольких проектов, которые иногда перекрываются.
Основная проблема заключается в том, что некоторые проекты перекрываются, и нет ничего необычного в том, что функция или задача требуют изменения чего-либо в Project A, а также в Project B (все эти проекты говорят с одной и той же базой данных и используют одну и ту же базу данных таблицы, кроме того, они разделяют бизнес-уровень, так что изменение класса в одном проекте будет влиять на другое), поскольку все проекты являются существенно связанными частями одного «зонтичного» приложения. В качестве примера, для крупных проектов, есть в основном:
- Проект A: Фронтальный электронной коммерции сайт
- Проект B: система Back-конец исполнение/управление
- Проект C: клейма копия от переднего конца участка (стили же минус CSS и с меньшей функциональностью)
- Project D: Web Service API
а и в связаны между собой, но B представляет собой программное приложение-как-услуга (мы действуем как наш собственный клиент) с C как это передний конец для клиентов (A служит передним для нашей собственной компании, поскольку C по существу A с меньшими возможностями и без специфических для компании деталей). D доступен только клиентам, но моя конечная цель - использовать функции A, B и C, используя функциональные возможности D через веб-службы (в основном, в нашем собственном докторе).
Мы только что решили пойти с трехнедельной стратегией развертывания (что означает, что мы занимаемся производством каждые три недели), и наша текущая стратегия SVN является громоздкой и делает ветвление чрезвычайно болезненным.
С несколькими проектами, имеющими перекрытие, имеет ли смысл держать их всех в одной папке проекта с форматами филиалов/тэгов/транков, или мы должны рассматривать их как отдельные проекты? Может быть, объединить некоторые, например, с интерфейсом SaaS/backend вместе с нашим отдельным сайтом и веб-сервисом отдельно?
Любые предложения или рекомендации от людей, участвующих в подобных проектах, были бы замечательными.
Вы когда-нибудь рассматривали использование Git (http://git-scm.com/) вместо svn? Одна из основных рекламируемых особенностей GIT заключается в том, что она может работать гораздо проще, чем с svn. Надеюсь это поможет. – Philippe
Да; мы тоже оценивали Mercurial, но кривая обучения оказалась проблемой, поэтому слишком сложно слишком много менять, мы застряли в SVN. Попытка узнать Mercurial/Git была «слишком тяжелой» и вызвала проблемы ... –