We are using git (Gitlab) on an in house dev server for work.
We have a project that often acts as the base for a number of other projects.
As a basic example, we'll take a base code (login, sessions, tracking events, etc) and add in event specific code to better cater to the needs of that particular event. Each event is its own deployment and has its own space on the server.
What is the preferred strategy for dealing with code bases like this?
I see two options:
Option 1
Branching - for each deployment, clone the base repo down, switch to an event specific branch, and then merge in base code wide changes (refactoring of base code, etc) to the branch whenever necessary.
This seems fine, but a bit messy (what about when there are 200 events?). Someone wanting to work on the base code ends up pulling in code for a ton of events at once. These events often come with images, movies, sound files, which can be quite expensive resource wise.
Option 2
Separate repos:
For each deployment, clone the repo, push the event specific code to it's own repo, and pull the origin (base code) as needed to merge in changes.
I prefer the idea of number two - browsing the repo will be cleaner and easier. My activity screen won't be a mess of every event and the commits to it.
It is also worth mentioning that every event will most likely have at least a development and production branch.
Are there already established practices for this scenario?
Are there other/better options?
If there is any more information I can provide, or specifics that would better explain this situation, please ask.
Thanks.