mercredi 18 février 2015

Complex layout GIT project flavours branded version with deploy

my company develop a complex project.

Today we have decided to migrated from SVN to GIT.


Our project have the following features:

* have source code and compiled compiled(uglify) code and all need to be repositorized

* have about 10 parts-modules

* have a core code (about 80 % ) and branded code (different for every customer)

* we have installed git on our server to deploy the product.


Today we have choose the following layout, but work bad, and I hope there is a better method to do this.

Atlassian Stash Project source code

- module1 repo

- - master branch

- - customer1 branch

- - customer2 branch

- module2 repo

- - master branch

- - customer1 branch

- - customer2 branch


Atlassian Stash Project compiled code

- module1 repo

- - master branch

- - customer1 branch

- - customer2 branch

- module2 repo

- - master branch

- - customer1 branch

- - customer2 branch


the master branch include the "generic code" for all installation. customer branch include only "specific code" for a particular customer installation.

More than 70% of our commit is for "generic code" and now with this layout if we want to commit a shared code we need to create a branch from master before the first customerN branch was created. and in this branch include all the code and after merge this branch on master, customer1, customer2, ecc ecc

We need also to write a script to deploy our project (is web project) throw GIT. In conclusion, what is the best GIT layout for branded project?





Aucun commentaire:

Enregistrer un commentaire