Поддержка приложения для нескольких клиентов параллельно?

Есть крупный проект на PHP. Код лежит в SVN в нескольких репозиториях. При разработке успешно используются ветки и таги, каждое задание делается в отдельной ветке. В принципе все ок, конфликты возникают только при мерже старых веток. Все было хорошо, но недавно появилась необходимость поставлять этот проект нескольким клиентам. Это будут урезанные версии продукта, немного отличающиеся для каждого клиента. Возможно у каждого клиента еще будут какие-то специфические фичи.


Внимание вопрос. Как все это менеджить теперь?


Я думал вести для каждого клиента отдельную ветку, время от времени вливать в ветку изменения из транка и делать в ветке клиента только совсем специфические для него фичи. Но почитал, что вести параллельные долгоживущие ветки в SVN (да и в любой другой системе контроля версий) — западло. Все советуют просто сделать модульную архитектуру и держать в основной ветке все фичи, а далее для конкретного клиента делать специфические сборки. Но есть проблемы:

1. Модульность пока реализована в половине проекта, и реализовать ее в полном объеме непросто и долго

2. Я не могу помещать все возможные фичи в сборки всех клиентов и просто делать некоторые их них неактивными (как многие советуют). Если чего-то не должно быть в коде — его действительно быть не должно.

3. Меня угнетает тот факт, что в SVN у меня не будет истории проекта для конкретного клиента.


Сейчас мне наверное напишут, что вместо SVN надо использовать GIT. Ну а вот реально, кто-то в гите ведет параллельные ветки длительное время?
  • Вопрос задан
  • 3272 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы