CUT TO:

INT. PROJECT ARCHIVE — STORYBOARD ROOM

The USER opens Grip.

DIVAKAR DESSAI

Let's run through the shots.

CASE FILE / COMP2041 / Version Control / Python

GripBuilding a Miniature Version-Control System

Implemented a simplified Git-style version-control system with staging, commits, history inspection, status reporting and file removal.

01–02 / OPENING SEQUENCE

Establishing the world

01 / Establishing Shot

The Problem

The project required recreating core version-control behaviour and correctly distinguishing several competing versions of each tracked file.

02 / Wide Shot

The Context

Grip was a simplified version-control system inspired by Git and implemented through a suite of command-line utilities.

03 / CHARACTER NOTE

DIVAKAR'S ROLE

Subject

Divakar Dessai

Production

Grip

Take

03 / Role

Role notes

DIVAKAR DESSAI

I implemented repository state, staging, commits, history, status inspection, removal and test scripts.

04 / CLOSE-UP

THE ENGINEERING CHALLENGE

Commands such as status and remove had to reason simultaneously about the working directory, index and latest committed snapshot.

05 / TRACKING SHOT

THE APPROACH

A plan emerges.

I represented the repository through explicit filesystem structures for staged files and committed snapshots and compared these states when executing commands.

06 / INSERT SHOTS

KEY FEATURES

The system takes shape.

07 / DIRECTOR'S NOTES

DESIGN DECISIONS

Things we decided along the way

01

Modelled the working tree, index and repository as distinct states.

02

Persisted repository metadata in a dedicated local directory.

03

Implemented commands independently around the same shared repository model.

design decisions

somewhere mid-build

08 / RETAKES

WHAT WENT WRONG

Naturally, not everything cooperates.

09 / FINAL SHOT

THE OUTCOME

ProblemBuildOutcome
01

Built a functioning miniature version-control system.

02

Developed a concrete understanding of Git's index and repository concepts.

03

Improved filesystem and command-line application design skills.

10 / PRODUCTION NOTES

TECH STACK

The tools behind the scenes.

PythonUnixFile SystemsCLI Tools

11 / BEHIND THE SCENES

LINKS

FADE OUT.

USER closes the file.

One project down. A few more stories left.

DIVAKAR DESSAI

Pick another?
← Return to Projects