Skip to main content

A lightweight version control system with cross-platform support

Project description

SnapVC - Simple Version Control System

License: MIT Python 3.7+ Cross-Platform

A lightweight, educational version control system with Git-like "house" branches, content-addressable storage, and cross-platform compatibility. Perfect for learning version control internals.

🚀 Quick Start

# Install
pip install snapvc

# Initialize and create first snapshot
svcs init
echo "Hello World" > file.txt
svcs ready && svcs snapshot

# Check status
svcs current  # Current version
svcs snaps    # Total snapshots

✨ Key Features

  • 🏠 House System: Git-like branches for parallel development
  • 📸 Content-Addressable Storage: SHA-256 hashing with automatic deduplication
  • 🌍 Cross-Platform: Windows, macOS, Linux support
  • 📚 Educational: Learn version control internals hands-on
  • 📦 Zero Dependencies: Python standard library only

📖 Essential Commands

Command Description
svcs init Initialize repository
svcs ready Stage files for snapshot
svcs snapshot Create versioned snapshot
svcs house new <name> Create new house (branch)
svcs house <name> Switch to house
svcs current Show current version
svcs revert <version> Restore to specific version

🏠 House System Example

# Create feature branch
svcs house new feature
echo "new feature" > feature.py
svcs ready && svcs snapshot

# Switch back to main
svcs house main  # feature.py disappears

# Switch to feature
svcs house feature  # feature.py reappears

🔧 How It Works

  • Staging: Files prepared in "ready" area before snapshotting
  • Hashing: SHA-256 ensures integrity and enables deduplication
  • Storage: Content-addressable storage with automatic file sharing
  • Houses: Independent version histories with shared content pool
.svcs/
├── house.txt           # Current house
├── main/              # Default house
│   ├── data.json      # Version metadata
│   ├── ready/         # Staging area
│   └── snapshot/      # Content by hash
└── feature/           # Other houses

💡 Perfect For

  • Learning: Understand Git-like systems internally
  • Education: Teaching version control concepts
  • Small Projects: Lightweight versioning without Git complexity
  • Experimentation: Try different workflows and branching strategies

⚠️ Requirements

  • Python 3.7+
  • Any OS (Windows, macOS, Linux)
  • No external dependencies

📚 Documentation

For detailed documentation, examples, and architecture details, visit: https://github.com/ShreyashM17/Version-control

📝 License & Author


Learn version control by building it! 🚀

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

snapvc-1.0.2.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

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

snapvc-1.0.2-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file snapvc-1.0.2.tar.gz.

File metadata

  • Download URL: snapvc-1.0.2.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for snapvc-1.0.2.tar.gz
Algorithm Hash digest
SHA256 8f80ad5552692e50d0a0e971ec76acb96e1b5568d9a8474a4254f5e641d8e741
MD5 ee9c2f53c19ababe16eb06682a5d5a3f
BLAKE2b-256 0c3b166f7fada531179f5e887dca6b6918523a105dd69e6b32d994595ec676b4

See more details on using hashes here.

File details

Details for the file snapvc-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: snapvc-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for snapvc-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 602620d536f70f0b0d4826abdebfbf1458c988e12b8321004ffad60c14dc6d44
MD5 543ba33ea7bf955758ea2bf301cbefb7
BLAKE2b-256 ad28edf5cda616fb1a6330a59bee34664914a689aebeda7b908e948bc0c74735

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