Skip to main content

A lightweight local version control system

Project description

Oreon

A lightweight Version Control System (VCS) written in Python.

Oreon is a command-line version control system inspired by Git. It allows you to track changes to your project, create commits, restore previous versions, and work with multiple branches—all through a simple and intuitive CLI.

Current Version: 1.0.0


Features

  • Initialize repositories
  • Track file additions, modifications, and deletions
  • Create commits with custom messages
  • Restore any previous commit
  • View repository status
  • Display commit history
  • Create and switch between branches
  • Prevent branch switching when uncommitted changes exist
  • Repository information command
  • SHA-256 based change detection
  • Incremental storage for efficient versioning

Installation

From PyPI

pip install oreon

Verify Installation

oreon --version

Getting Started

Initialize a Repository

oreon init

Check Repository Status

oreon status

Create a Commit

oreon commit -m "Initial project setup"

View Commit History

oreon show

Restore a Previous Commit

oreon restore

View Repository Information

oreon info

Branching

Create a Branch

oreon createBranch feature

Switch Branches

oreon changeBranch feature

If uncommitted changes are detected, Oreon prevents switching branches to avoid accidental data loss.


Repository Structure

project/
│
├── .oreon/
│   ├── commits/
│   ├── latest/
│   ├── hashes.json
│   └── ...
│
├── source files...

Design

Unlike Git, Oreon uses an incremental storage approach.

The latest repository state is maintained inside .oreon/latest, while each commit stores only the changes introduced in that commit. During restoration, Oreon reconstructs the requested state by starting from the latest snapshot and reversing the required commits.

This approach keeps commits compact while allowing efficient restoration of previous versions.


Notes

  • Oreon tracks files, not empty directories.
  • Empty folders are not versioned, similar to Git's behavior.
  • Directories are recreated automatically whenever tracked files require them.

Example Workflow

oreon init

oreon commit -m "Initial commit"

# edit files

oreon status

oreon commit -m "Implemented feature"

oreon show

oreon restore

oreon createBranch experimental

oreon changeBranch experimental

Current Limitations

The following features are planned for future releases:

  • File diff support
  • Merge functionality
  • Branch deletion
  • Ignore file support (.oreonignore)
  • Remote repositories
  • Tags

Why Oreon?

Oreon was built as a learning project to explore how version control systems work internally. Rather than wrapping Git, it implements its own repository format, commit storage, restoration logic, and branching mechanism from the ground up.


Contributing

Contributions, suggestions, bug reports, and feature requests are welcome. Feel free to open an issue or submit a pull request.


License

MIT License.


Author

Pranay Sehgal

GitHub: https://github.com/PranaySehgal

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oreon-1.0.0.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oreon-1.0.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file oreon-1.0.0.tar.gz.

File metadata

  • Download URL: oreon-1.0.0.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for oreon-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d456c66cd9f8b15f3042be064a1e5344aa363d20f8a6ea54bc18d99df416befd
MD5 324e5d1408041feca8060193f4fac62c
BLAKE2b-256 58c1af46cf69677aae6ac59e36cb5cbdd8f00792a238845d6910ebf088bafbb3

See more details on using hashes here.

File details

Details for the file oreon-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: oreon-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for oreon-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bc3757ab06ab2c86c157d9439092021de4c25605c8ae2ff4129ea8ca49dbbdca
MD5 74c48d019efda3810b2047c66e2c2c06
BLAKE2b-256 ae98cbb1bdd00699db73c2ddc6f75a1e7b09fe174a91e6bbaf59ba95a0670ac4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page