I have two projects. One is the original OSS project. The other which we will incorrectly call "fork" is a copy of a branch of the original project.
The code in the fork was imported from a source zip from Github. (I am very much aware of the fact that this is not how you do things, but a team before me did it and I now have to deal with the fall out. I wish I was around when this decision was made to advise against it, but it is what it is and it needs to be fixed properly now).
The problem:
The code in the fork contains the code of original project for tag
1.2.0. The code in the fork is in it'smaster.The fork has modifications that are not part of the original project.
As can be expected, the original project has also continued its life and it now has reached version
1.6.0.
I'd like to start off fresh and do the following:
(Really) Fork the original project (along with all its history).
Create a
1.2.0-modifiedbranch which is based on the original1.2.0.Fetch the changes from the repository with the modifications and apply them to
1.2.0-modified. (I have tried rebasing, after some manual changes during the merge, I was able to get the code to build).I would now like to know what the best course of action is, if I'd like to move forward and rebase to
1.6.0.
Please, keep in mind that there have been changes two both the original project and the "fork", so I'd like to be able to keep the history from both sides.
What is the proper way to do this?
Obviously, I have added both remotes to the new fork for the modifications and I've fetched them both.
The problem is that after rebasing the changes from the fork's 1.2.0, while I did get it to resolve the conflicts and build properly, when I try re-basing on to 1.6.0, it seems to be re-applying the same fixes all over again, which I believe is because the original branches were not based on 1.2.0-modified.
Is there a smart and easy way around this?