I think that about Subversion, which is really just a versioned filesystem; the git command line is pretty complicated though.
The fact that Git clients store full histories is one of the things that makes it less like a filesystem; it is, instead, a system for managing overlapping patch streams.
Check out the core svn C APIs (nb: our product is built on them); it's basically an open/close/read/write/readdir system with one additional "history" option (which history snapshots an entire filesystem, not just individual files (like CVS) or patches (like git).