simple version control system based on git.
Each repoisitory is initialized with a manifest containing a record of all tracked files, their current versions, and hashes. Clients can add/remove tracked files, commit/push, update/upgrade, and rollback just like any other version control system. The server keeps a record of current and past versions of each file.