> On the other hand, source files being mostly text, they are more intelligently handled and typically only differences between revisions are stored in the commits.
This is completely incorrect, git stores whole blobs from one commit to the other.
svn stored patches, but git does not. Every version of a file is stored in its entirety in your git tree since the beginning of the repository's existence. This is one of the reasons why git is so fast. You can go through your objects in your .git directory and verify this for yourself[0].
$ find .git/objects -type f
.git/objects/ff/a5d733354ae6f8bdc67764d58d87c9a3161f66
.git/objects/ff/deb08f4856bd6eb5b31d7f800b3e480ae3e2e0
$ git cat-file -p ffa5d733354ae6f8bdc67764d58d87c9a3161f66
...file contents appear...
[0] https://git-scm.com/book/en/v2/Git-Internals-Git-Objects