Best way to fork SVN project with Git
- by Jeremy Thomerson
I have forked an SVN project using Git because I needed to add features that they didn't want. But at the same time, I wanted to be able to continue pulling in features or fixes that they added to the upstream version down into my fork (where they don't conflict). So, I have my Git project with the following branches:
master - the branch I actually build and deploy from
feature_* - feature branches where I work or have worked on new things, which I then merge to master when complete
vendor-svn - my local-only git-svn branch that allows me to "git svn rebase" from their svn repo
vendor - my local branch that i merge vendor-svn into. then i push this (vendor) branch to the public git repo (github)
So, my flow is something like this:
git checkout vendor-svn
git svn rebase
git checkout vendor
git merge vendor-svn
git push origin vendor
Now, the question comes here: I need to review each commit that they made (preferably individually since at this point I'm about twenty commits behind them) before merging them into master. I know that I could run git checkout master; git merge vendor, but this would pull in all changes and commit them, without me being able to see if they conflict with what I need.
So, what's the best way to do this? Git seems like a great tool for handling forks of projects since you can pull and push from multiple repos - I'm just not experienced with it enough to know the best way of doing this.
Here's the original SVN project I'm talking about: https://appkonference.svn.sourceforge.net/svnroot/appkonference
My fork is at github.com/jthomerson/AsteriskAudioKonf (sorry - I couldn't make it a link since I'm a new user here)