I have a website that I need to deploy to about 30 customers. They are all the same apart from the branding. Using SVN, I would like to have one base version of the product, and then just the different branded content (images, CSS) for each customer. That way, when I maintain the base product, I don’t have to replicate that change for each customer. Deployment would just be a case of updating and releasing.
Sounds simple, but I am having problems achieving this in SVN. I have been looking into SVN externals using a structure as follows:
- Main
- Base
- .
- .
- Images
Customer 1
- Base
- Custom
- Images
Customer 2
- Base
- Custom
- Images
and then using externals pointing the Customer Base folders to the main base folder. That works, but I then need to overwrite (for example) the images in the Customer 1\Base\Images folder with the customer specific ones, and when I set up the externals for that it complains “Customer 1\Base\Images is not a working copy root”. It does appear to have overwritten the image with the customer one though.
Maybe externals are not the answer.