I've been given the task of 'taking ownership' of one of our plugins, which over the course of a couple of years has diverged into different versions for different clients, such that we have about 5 different 'prod' versions, some with the same features added, some with features missing.
Basically what I need to do is create one generic base branch merging all the various changes in and making sure nothing is missed. Then we want to start using the generic branch for all clients.
What would be the best way to approach this?
- I could start with a 'latest' branch (ie. one that's had the most changes made to it) and make a new branch off of that and then (e.g.
base-branch
) try rebasing in the other 'prod' branches. - Or I could start back at the
master
branch (which is some way behind now) and try rebasing everything into that. - Or is there a better way to do this?
I've not done anything like this with a big project and lots of different versions, so I'm not sure the best practices to ensure, firstly that I don't miss any commits and end up with missing features, and secondly just the general workflow that is going to make this as painless as possible.
Thanks.