Helping with organizing branches

Hello everyone.

I’m looking for solution(s) for problem that company where I work has encounter with.
First of all I need to explain the application that company has developed.
It’s a business app that is composed with accountat part, document management system, human resources and others part, and all of that make an one big business solution app.
The program itself is consist of multiple menu options where every option is stand allone dll ( here they try to make to look like modular app which isn’t ) and leading with that on gitlab that we use we have an one repository with 1000+ projects(folders) in it.

Ok, here is how our gitlab is setup:
- We have a lot of costumers (other companies) that use our software
- Every company isn’t from the same branches (industrial, agriculture, municipalities, e.t.c.)
- For every company we create a new branch on gitlab ( here is where the problem start )
- The reason we made it like this is because to avoid things like if we add new option that only companies from industrial can use we don’t want that option to be visible to others companies ( I know that main problem is that the whole software isn’t made to be modular )

Ok. Here is the sketch of how it looks:

Branches: 

(every company branch is made of master branch)

- master
- Company 1 (Industrial)
- Company 2 (Industrial)
- Company 3 (Agriculture)
- Company 4 (Post office)
- Company 5 (Agriculture)
- Working Branch ( Is the branch where everything that are added, edited or deleted on others branches, same modfication is done here ) 

The problem that we encounter is next:
Problem.
- If we say that we want a new option for “Company 1 (Industrial)” that mean we need to add that new option to the “Company 2 (Industrial)” as well, and that is a double work (nightmare)-- checkout to branch Company 1 do things push it after that do the same thing for company 2, e.t.c.
- Doing one job over and over agian ( infinity loop )
- And after you finis with the Company branches there’s a Working Branch where you need to add,edit, or delete same modfication here

	And every that job is required a lot of time.

To reduce looping time I’m asking you to give me a solutions for this problem. Any help is welcome.

You don’t have to do the same thing for each branch. After you have added a new option for “Company 1 (Industrial)”, you can merge or cherry-pick that change to “Company 2 (Industrial)”.

You could also consider having a central generic “Industrial” branch, from which all industrial companies would start. All new options would be created on that central branch, and afterwards you could rebase the company branches to the central branch.

1 Like