What's the best practice to fork an open source project?
branch, open-source, svn, version-control
Solution
Best practice is to first try to merge your changes into the project.
If that's not an option you just
- import their current HEAD,
- make your modifications in a branch
- update your tree from theirs
- merge and rebranch
Steps 3 and 4 are relevant to keep your fork current. It is a lot of work, depending on the project's activity and the importance to stay current. If very important I'd update and merge at least once a week.
You might prefer to import their svn tree into git to make merging easy, which is what you'll be doing the most
Problem
I need to customize an open-source project. The changes are for a specific organization and will not be useful to the public project. The code changes include disabling features not needed by the organization (affecting 5% of the code), customizing other features for the organization (affecting 20% of the code), and adding new custom features (adding about 10% new code). I could start with the current version and customize from there. However, the original project continues to make advances and introduce new features, and I would like to be able to incorporate these improvements as they come along. What's the best way to manage this? Right now, I can only get release versions as they become available, but I should soon have read-only access to the original project's Subversion repository. I'm new to using Subversion repositories, but have them available to use for my code as well.