Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm planning on using Vincent Driessen's branching model which I found great for my current development. I think Vincent approach is very general to any development project but I'm finding it difficult to handle the following scenario.

I'm working on an application that will be branded to several customers, so each one of my bundles is a different branch that I rebase from develop branch each time a new build is going to be released. Each brand has its assets (images and text) and they do not conflict with changes in develop branch because in that branch I never touch the assets.

My question is, now that I'm planning on using it, how can I handle different versions based on the same code base but with different assets?

share|improve this question
up vote 1 down vote accepted

If each brand has independent assets then you can create each customer branch from develop and then pull future changes in as required. Individual assets can be created, edited and committed on the appropriate customer branch.

A nice side-effect of this is that you could have common assets on develop if that makes sense.

Depending on how distributed your development is, you might consider pulling from master rather than rebaseing. You don't want to rebase if commits are being pushed around to other repositories.

To summarise: code changes on develop; asset changes on customer-X; occasionally pull from develop to customer-X. Sorted.

share|improve this answer
Thanks, really liked your explanation. – licorna Oct 21 '10 at 15:40

I've skimmed over the article, so I can't be sure I got everything 100% correct, but here's my idea: can you simply edit your assets in the master branch? Or, if you're keeping your "branded branches", modify your assets only there. You can then simply merge the code from your develop, since you're not touching any assets there.

To be honest, if assets are the only problem here, I'd create a config file (or a database table if you have one) for your application which would tell it which assets to load dynamically. This would eliminate any "brand branches" and make it easy for you to maintain your assets easily.

share|improve this answer
+1 for dynamic loading of assets – Note to self - think of a name Oct 20 '10 at 0:30

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.