I have a slightly different setup: the SVN repo is not cloned from the Git repository.
My Git repo has basically two branches: master and svn . master synchronizes with the remote open Git repository, svn is connected to the remote SVN repo.
I apply fixation from one side to the other using git cherry-pick and have no problems reloading and merging.
I tried to merge master in svn before, but always ended up endless conflict resolution sessions. When you use cherry picking, life is much easier.
To get svn in my master , I do the following:
First you need to synchronize both branches with their upstream:
git checkout svn git svn rebase git checkout master git pull
Then (while on master ):
gitk svn
This brings up the gitk window, where I select the commits that need to be passed from svn to master . Then I apply the commits to the remote using git push .
To get the changes from master to svn , I git checkout svn and then run gitk master . Once again, I select the commits to be transmitted, and when this is done, git svn dcommit pushes the commits to the SVN server.
Simple and painless.
source share