In our application we often need to rename a file/package on a release branch and then merge this change (along with many others) to the trunk. A big problem is that many SCM solutions (our current is SVN) do not track file renames. When we go to merge a release branch of our product back to the trunk it becomes easy to lose these changes as the SCM is not intellijent enough to know that MyOriginalFileName and MyRenamedFileName are the same file/class/etc.
It seems to me that we might be doing something wrong, what would be the GIT way of handling this?