svnmergebranchcustomizationaspdotnetstorefront

SVN Branch / Merge Process for AspDotNetStorefront Source


Wondering if folks had a recommendation on how to manage branching and merging for how we "want" to handle customizations to our AspDotNetStorefront usage. Basically, we get updates of the AspDotNetStorefront occasionally and need to apply customizations at two levels: global customizations and client customizations. Lets say we have the following as a simple example:

This is essentially where we are today. Now, if version 2.0 of the AspDotNetStorefront comes out we're unsure of what to do. I'd want to do the following, but I'm unsure:

Am I completely off-base here? First time we've tried to integrate manufacturer code into our SVN structures where the manufacturer's code is actually modified (as opposed to just bolted-on or plugged-in). Any references to documentation would be helpful. Also, I may just not know the terminology of this type of model to search for it, so if there are terms for this type of activity that would be helpful too.

Thanks!


Solution

  • What you have today looks like...

    AspDotNetStorefront 
            --->  AspDotNetStorefront_v1.0
                         --->  AspDotNetStorefront_v1.0_Cust  [*]
                                            ---> ClientA_v1.0 [*]
                                            ---> ClientB_v1.0 [*]
    

    I assume you would like to keep AspDotNetStorefront_v2.0, Cust and Client* branches; This seems to be a very difficult situation to manage... The answer depends upon the fact

    The magnitude of change from AspDotNetStorefront_v1.0 to AspDotNetStorefront_v2.0 is more or delta between Cust and Client* branches?

    You should choose to patch the minimal piece of work as then merging will be easier and regression issues can be avoided.

    AspDotNetStorefront 
            --->  AspDotNetStorefront_v1.0 + (Upgrade Code to v2.0)
                         --->  AspDotNetStorefront_v1.0_Cust + Upgrade Code to v2.0
                                            ---> ClientA_v1.0 + Upgrade Code to v2.0
                                            ---> ClientB_v1.0 + Upgrade Code to v2.0
    

    Since it seems that you need to keep all of these branches intact so this is the structure you would end up with.