Version control systems (VCS) allow developers to manage code through capabilities like reversibility, concurrency, and annotation. Subversion is a popular centralized VCS that was released in 2000. It uses a trunk-branch-tag structure where the trunk contains stable code, branches are for development work, and tags create snapshots. Developers check code out from the repository, check changes in after making modifications, and view file histories.