I am using git-svn with the following workflow now
git clone #done once
subsequently when I work on a feature
Instead of git-svn, you may use SubGit. It's a server-side tool which automatically synchronizes Subversion and Git repositories.
You can use any Git workflow and any Git client available, no additional client tools needed.
Considering your scenario:
git branch featureZ
git checkout featureZ
# make edits for featureZ
git commit
git checkout master
You can proceed as follows:
Push feature branch entirely.
git merge featureZ
git push origin refs/heads/*
Rebase a feature branch on top of master/trunk.
git rebase featureZ
git push
Squash commits from a feature branch.
git merge --squash featureZ
git commit
git push
As soon as you push changes, SubGit hooks translate your changes into Subversion revisions.
Some more details: