Skip to content

opencodeiiita/DING

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DING — Ding Is Not Git

A complete Version Control System built from scratch in Python.

DING is an version control system developed as part of OpenCode by IIITA.
The goal of this project is to build a VCS that implements most of the features git

DING focuses on teaching core concepts such as content-addressable storage, snapshots, commits, branching, diffs, and logs - all through readable, well-structured Python code.

If you've ever wondered “What actually happens when I run git commit?”, DING is for you.


Objectives

  • Build a fully functional VCS, not a mock or toy model
  • Keep the implementation simple, readable, and hackable
  • Encourage contributors to learn by building, not just using tools

Features

Repository Initialization

  • Initialize a DING repository inside any directory
  • Creates internal metadata and object storage
  • Inspired by Git’s .git structure

Object Storage

  • Content-addressable storage using hashes
  • Stores:
    • Blobs (file contents)
    • Trees (directory snapshots)
    • Commits (project states)

Commits & History

  • Snapshot-based commits
  • Commit metadata (message, parent, timestamp)
  • Linear history traversal
  • Commit logs similar to git log

Branching

  • Lightweight branch references
  • HEAD pointer management
  • Switch between branches safely

Diff & Status

  • Show changes between commits
  • Working directory vs last commit
  • Track modified, added, and deleted files

Getting Started

Before starting - check out our CONTRIBUTING.md to get a refresher on contribution and general workflow.


Tech Stack

Language

  • Python 3.x

External Dependencies

NONE, build from scratch just using std


Project Structure

.
├── setup.py
└── ugit
    ├── base.py
    ├── cli.py
    ├── data.py
    ├── diff.py
    └── remote.py

About

Ding Is Not Git - An entire VCS built from scratch in Pyhton

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages