We have a codebase that we sell to multiple clients. We use git for version control and Capistrano for automated deployments.
There are slight variances between the deployments such as design layouts, css files, logos, and config files like CAKEPHP's front controller which has the paths to the app and cakephp directories in it.
We currently have main master/staging branches for the project. We develop in topic branches, once the topic branch is ready to be merged into the codebase, we merge the topic branch into staging and deploy to our main staging server.
Once the code has been tested on staging and we are ready to release we merge staging into master. Then we have to deploy to the different client servers. We have a staging and production server for each client.
Currently we have a staging and production branch for each client and we deploy to each server from each separate branch. This is becoming painful as we have to merge our main project branch into the staging/production branches for each client and the run cap deploy for each server.
How can we just deploy to the clients servers from one branch, but include the different files needed for each clients server to work and look proper?