A mini version control system in Scheme using MySQL

The computer science program at the Vrije Universiteit Brussel (VUB) required students to submit a programming project each year. When I was studying there, the first two years required the project to be implemented in Scheme, a dialect of LISP. The next two years I implemented the software for my projects (and Master thesis) in C and C++.

This project was finished while I was in the second year of my education at the VUB. I was interested in version control systems such as CVS, so I designed and implemented a very simple version control system in Scheme. Jessie Dedecker wrote an extension to the SCM Scheme interpreter in C, to allow both our projects to connect to the MySQL database system. The version control system I implemented using this extension ran on Linux in the SCM interpreter and listened for connections on a predefined port. A user could telnet to this port and login, and use a simple version control language to query documents in the database, perform check-ins and check-outs, etc. The goal of this project for me was to learn how to  build a server application.

As with all projects, you can send me an email if you would like to know more about this project or if you would like to use the source code as a starting point for your own work.