Skip to main content

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

Metadata

Release files for oreon 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oreon 1.0.0
File Size Uploaded
oreon-1.0.0.tar.gz 10.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for oreon 1.0.0
File Interpreter ABI Platform
oreon-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 22.9 kB

Release files / oreon-1.0.0.tar.gz

Download URL oreon-1.0.0.tar.gz
Size 10.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d456c66cd9f8b15f3042be064a1e5344aa363d20f8a6ea54bc18d99df416befd
BLAKE2b-256 checksum
How to use checksums
58c1af46cf69677aae6ac59e36cb5cbdd8f00792a238845d6910ebf088bafbb3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release files / oreon-1.0.0-py3-none-any.whl

Download URL oreon-1.0.0-py3-none-any.whl
Size 12.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bc3757ab06ab2c86c157d9439092021de4c25605c8ae2ff4129ea8ca49dbbdca
BLAKE2b-256 checksum
How to use checksums
ae98cbb1bdd00699db73c2ddc6f75a1e7b09fe174a91e6bbaf59ba95a0670ac4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page