SaaS CMS has officially launched! Learn more now.

Merging Two branched out CMS 11 code



I am a beginner to EpiServer just playing around with existing code and minor customization. We have a .Net product which uses Episerver CMS. As the customer request customization 20% of the system is customized, the code branched out into seperate versions. Now its been decided we merge everything into one Trunk and the customization should be managed from with in CMS. or if possible to have it in an environment specific deployment process. Like if the environment is X then include this field, else don't.

Currently considering one branch as master and trying to merge one page at a time and make it work.

I know it is a broad topic. Basically I am looking for direction, if someone already went down this path on,

  1. Effectively sync the EPI CMS DB. Export/import?
  2. show/ hide customization based on client/enviornment
  3. Dependancy Injection to show different form based on customer.

Any Idea or direction is appreciated.


Apr 17, 2021 20:56

There are many, many ways to do this with branching and deployment strageties but the key is to identify exactly what you want to achieve and then look at the different routes.

How many different clients and/or environments are you looking at, should you be trying to run them all from the same master or would it be better to run them all from their own branches,what servers are you using, what's their distribution, etc.?

In our case we have 5 different environments each with its own Db. We have 4 branches from master (master being production environment). 

Each environment has its own build and release pipeline, pipelines contain variables which allow us to change config settings and turn features on and off which is down to how we write the code to enable that.

Can use something like Redgate toolkit to clone the Db between environments, very handy for masking and trim downs when you need a copy of production Db to for your dev/test environment.

Apr 22, 2021 12:22
Apsar - May 03, 2021 6:27
"How many different clients and/or environments are you looking at"
3 currently. but will add few more following year. Each client has their own servers/ environment with own DB. so it is not shared database in deployed environment. Only the code for all the branches should be from trunk. This helps in managing the upgrades easily, rather than upgrade each branch which some times missed in one of the branch.

Currently what I am facing is two similar "page types" in two branch named differently with different GUID in CMS. Actual content is similar.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.