I migrated to git using git-svn. Our svn repository is still in tact and we still get all of the "git awesomeness". Essentially after the git-svn clone you branch that again as your 'trunk'. Everyone using git will branch from here. When you need to get updates from svn you simply do git-svn rebase and then do git merge --squash from the svn branch to the new 'trunk'. And visa versa. This will mean your history on the svn repo will not match whats in git. When you do more then one merge, at some point your going to have to start grafting commits because the history doesnt match. However if you graft the HEAD of your git trunk to the last commit id that was a squashed merge you will get the same effect.
Ok so let me break this down the best I can with an example.
svn repo:
svn://xyz.com/myproject
git svn clone svn://xyz.com/myproject
This should leave you with a normal git-svn setup with a master branch which has the same history as the svn repository.
git checkout -b git_trunk
git_trunk becomes the "trunk" for the git users.
This branch can be used freely like any other git repository.
Now you need to synchronize these two branches via git merge --squash
For instance.. merging from the master svn branch to git_trunk
git checkout git_trunk
git merge --squash master
git commit -a
You would do the same thing in order to merge from git_trunk to the master svn
except you would execute
git svn dcommit
This will push it back to svn.
So the complicated part here is that since we are using --squash the merge history is lost and the only common ancestor git will ever know about is the branch point. This will mean merge conflicts. The way i solved it was by doing something like this
Merging from git_trunk to master. First I take the commit id of the last squash on git_trunk. Lets call it ABCDEFG. Then i get the commit-d of git_trunk. Lets say its HIJKLMNO
echo "HIJKLMNO ABCDEFG" > .git/info/grafts
This will tell git when merging that the most common ancestor is the most recent squashed commit.
Its not perfect but it works great for me. Especially now since almost everyone is on git.