Question

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?

Was it helpful?

Solution

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.

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
scroll top