I have a project that is a customisation of an existing FOSS product. Its getting to the point where we're maintaining a long-term fork rather than applying new plugins and the like. I'd like some input on what the sanest workflow for maintaining this project might be.
Just fork the project on github. Super messy to maintain and get people up to speed on. fails 3,4.
Make a new repository, have a project maintainer pull in tagged releases of the upstream codebase as needed. eg something like git fetch upstream; git merge upstream/sometag tagintegrationbranch
Not sure how to easily push fixes upstream in this model. Kind of fails 1.
Fork the upstream project, use that as the upstream like in Option 2. Used as an aide to the PR system. Will probably have to do cherry-picks or some similar micromanagement to push code back up this workflow depending on how well feature/bug branches are managed, but should be fairly clean. Seems to satisfy most criteria.
Something I have not considered?
Option 3 seems to represent to clearest separation of workflow between the two projects:
To facilitate the merges, I would recommend using hierarchical branch names in your repo, in order to clearly separate:
/
' in them)original/dev
', for you to cherry-pick from or to)/
' in it, in order to clearly differentiate it with other regular branches for your project.If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With