Основная база исходного кода и различные выпуски / Заказчики - PullRequest
0 голосов
/ 20 марта 2020

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

У меня есть проект, и этот проект по сути является основным исходным кодом, и любые новые функции будут добавлены в этот проект. и будет скопирован в «детей» этого проекта. Поэтому, если появится клиент А, мы скопируем основной источник с последними функциями. Затем, если Заказчик B хочет использовать систему, мы берем последнюю версию основного источника (в которой, возможно, были встроены другие новые функции). Таким образом, мы будем строить основной источник каждый раз.

Тем не менее, я хотел бы иметь возможность объединять функции и в другие версии клиентов, чтобы они могли иметь новейшие функции, если потребуется. Не совсем уверен, хороший подход или инструменты, чтобы помочь с этим. Решит ли ветвление эту проблему?

Это веб-система ASP. Net MVC, использующая старую версию TFS (2010), но использующая последнюю версию Visual Studio (2019)

Пример:

Main Code
------------------------------------------------------------------------
       |                  |                                |
       |Customer A        |                                |
                          |New Feature Added to Main Code  |
                                                           |Customer B

Итак, в этом примере, к которому присоединяется Клиент А, мы берем копию базы кода. Затем добавляются некоторые новые функции, а затем Заказчик B получает новейшую кодовую базу, включающую самые последние и самые лучшие.

Заказчик A узнает об удивительных новых функциях и хочет получить к ним доступ. Вот где стратегия начинает размываться ... как бы разработчик мог внедрить новейшие функции в базу кода без копирования и вставки различных файлов?

1 Ответ

1 голос
/ 23 марта 2020

ну обычно git было бы лучше для сложной стратегии ветвления ...

Но, ... я думаю, для вашего случая имеет больше смысла правильно версия программного обеспечения, например Semanti c Versioning , и сделать версии (выпуски) доступными для ваших клиентов. Они могут решить для себя, хотят ли они купить более новую версию или купить версию для обновления или получить бесплатное обновление для исправлений ... et c ...

в любом случае, начните с простой модели и примите когда требования клиентов / требования становятся яснее

...