Charlie
Charlie

Reputation: 391

Master Source Code Base and Various Releases/Customers

This is sort of a theoretical question, but also something I would like to implement.

I have a project, and this project is essentially the main source code and any new features will be added to this project and would be copied to the "children" of this project. So if Customer A comes along, we copy the main source with the latest features. Then if Customer B wants to use the system we take the latest version of the main source (which may have had other new features built into it). So we would be building off the main source each time.

That said, I would like to be able to merge features into other customer versions as well so they could have the latest features, if requested. Not really sure a good approach or tools to help with this. Would branching solve this issue?

This is an ASP.Net MVC Web System using an old version of TFS (2010) but using the latest version of Visual Studio (2019)

Example:

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

So in this example Customer A joins, we take a copy of the code base. Then some new features are added and then Customer B gets the latest code base that include the latest and greatest.

Customer A finds out about the awesome new features and wants access to those. This is where the strategy starts to get blurry... how would a developer get the latest features into the code base without copying and pasting various files?

Upvotes: 0

Views: 55

Answers (1)

Mario Dietner
Mario Dietner

Reputation: 586

well normally git would be better for a sophisticated branching strategy...

But,... i think for your case it makes more sense to version your software properly, e.g. Semantic Versioning, and make the versions (releases) available for your customers. They can decide for themselves if they want to buy a newer version or buy an upgrade version or get a free upgrade for bugfixes... etc...

anyway, start with a simple model and adopt when customer demands/requirements getting clearer

Upvotes: 1

Related Questions