Is there a tool or script that can migrate from SVN to CVS and also preserving meta-data and branches? I have tried svn2cc script but its doing from CVS to SVN
There won't be a tool to do this so your only solution is probably to use the generic export "git-fast-export" to produce a clean conversion file.
However, if you're just going to run a command for every item in the file you might consider using "git filter-branch"
This command allows you to checkout every commit from a git repository in sequence and run a script for that commit. Normally this is used to do nasty modifications on the git repository, but there's nothing that says your script can't create a checkin to another VCS instead.
Everything that git knows about a commit is available and can be replicated.
The basic "no-op" command is:
$ git filter-branch --commit-filter 'git commit-tree "$@"' -- --all
DON'T go via CVS by the way; you will probably lose information as to which files are changed in a commit and will definite lose one of 'COMMIT_DATE' or 'AUTHOR_DATE'.