Engineering Project
Gitlet — Distributed Version Control System in Java
Content-addressable persistence, O(n) branching data structures, and historical commit restoration.
Context & Engineering Scope
A Java implementation of core Git version-control functionality using content-addressable file persistence, object serialization, and O(n) complexity branching.
Replicating Git from scratch in Java requires designing efficient persistence mechanisms and graph data structures that support fast branching and historical file restoration.
Methodology & System Design
- 01. Command Abstraction (`java main.Gitlet`): Implemented core version-control commands including `init`, `add`, `commit`, `checkout`, `status`, `log`, and `merge`.
- 02. O(n) Branching Data Structures: Selected and implemented data structures providing branching operations with O(n) complexity.
- 03. Deterministic File Persistence: Built file serialization allowing users to restore files from specific historical commits.
Key Results
- Implemented core Git commands, O(n) branching, and persistent historical state restoration in Java.
- View-only source code available upon email request.