As I am learning Git, I get to know that the other VCS systems like SVN usually store changes to a base version of files. So, as a logical deduction, if I want to check out the version 4 of the file A, the SVN will patch the base version file on-the-fly with all the change sets commited until version 4 before delivering the verion I want?
The following picture may be helpful.

In short, only the base version file is stored statically, all the other versions are dynamically generated with base file and necessary change sets.
right?
Thanks.
From Subversion Design doc:
Important point is that, the latest revision is the base and (reverse) diffs are stored from that backwards.
http://svn.apache.org/repos/asf/subversion/trunk/notes/subversion-design.html#server.fs.struct
You can also look at the link to see how the commit gets stored in the repository.