This thesis describes a small version control system, its design and implementation. The version control system, sic, is implemented in Ruby. Its goal was to be a small system, featuring basic functionality, but at the same time solve some of the flaws CVS is suffering from. The system use common data structures such as graphs as internal representation of the data. The Ruby library PStore is used to store the objects. Access across different network is offered using a library called distributed ruby. Sic is based on the optimistic copy-modify-merge concurrency model and offer basic version control system functionality such as checkin, checkout, update, add and delete in addition to restructuring commands such as move and rename. It implements a simple merging system and remote access to the repository. It does not support branches and other more sophisticated operations.