My implementation of a version-control system. This version-control system mimics some of the basic features of the popular version-control system git, but it is smaller and simpler, so it's named gitlet.

A version-control system is essentially a backup system for files on your computer. The main functionality that gitlet supports is: Saving backups of directories of files. In gitlet, this is called committing, and the backups themselves are called commits. Restoring a backup version of one or more files or entire commits. In gitlet, this is called checking out those files or that commit. Viewing the history of your backups. In gitlet, you view this history in something called the log. Maintaining related sequences of commits, called branches. Merging changes made in one branch into another.

Many common Git commands have been implemented but it does not reflect Git's remote capabilities. Working commands include: add, rm, commit, branch, merge, status, log, global log, checkout

Gitlet Code

A fun game I implemented that allows users to play a game of Lines of Action. Users can play with another player or against an AI in the terminal. Additionally, users can also play 2 player mode with a GUI.

Lines of Action Code

In this project, I implemented a miniature relational database management system (DBMS) that stores tables of data, where a table consists of some number of labeled columns of information.

DB61B Code