You will design and implement the storage method, as well as some functions for Simple Version…
Version control systems are crucial in any software project. In this assignment, you will design
and implement the storage method, as well as some functions for Simple Version Control (SVC),
a (very) simplified system derived from the Git version control system.
2 Description of SVC
Projects that are to be placed under SVC must be initialised with svc_init. This allows the
system to create necessary data structures containing information about the state of the project.
Projects are comprised of files, and SVC computes a hash of each file to figure out if a change
has occurred. Only files which are explicitly added to the version control system are tracked.
Commits are like a snapshot in time of the state of the project. In SVC, they contain details
about which files have been added, removed, or modified, and sufficient information to restore a
file to this state. The currently active commit is often referred to as the HEAD. Each commit has
a “commit id” which uniquely identifies a given commit. Commit ids in SVC are represented in
hexadecimal numbers and are exactly 6 characters long.
Attachments: