Good morning Romel,
This is one of those questions that doesn't have one right answer, but I can give you my thoughts.
Depending on how you are customising the product for each customer you could extract out the common/core parts into a library, which is kept in one repository, and then depend on that library from each customer repository through some form of dependency management (ie Ruby Gems, Maven, Python Eggs, etc).
Otherwise you could just keep all the source in a single repository, and have "overrides" in customer specific folders. Because the files are in a single repository it will be tricky to make a change to the core product for one customer that doesn't affect another. The advantage of having a core library, mentioned above, is that you can "upgrade" a customer to a specific version of the product, whereas with a single repository there is only really one version/branch of everything. This may be what you want, I couldn't say.
Worst case scenario is to have a single repository with one branch for each customer. The problem here is that you constantly have to keep merging between branches and conflicts may arise. The advantage over your current approach is that you at least get conflicts if you change the same thing; I imagine at the moment you're having to manually copy files between each customer and it's hard to keep track of everything?
I hope that helps?
Connect with like-minded Atlassian users at free events near you!Find a group
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no AUG chapters near you at the moment.Start an AUG
We're bringing product updates and pro tips on teamwork to ten cities around the world.Save your spot