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.1.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.1-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: snapvc-1.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 418ab12d079494e7f97432e61acb4414115422cdc80c9d7394d446d9701b919f
MD5 d6e5a1af771b0e58fa53b8ce2218cd1c
BLAKE2b-256 50f00dcd714f87757e833a5f2364cd7aab5c3905b75ac2dbd7975ef4760474df

See more details on using hashes here.

File details

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

File metadata

  • Download URL: snapvc-1.0.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d5ca01c1eab9abbf3a62bb639c19286d8fa82e9423de306eefa61c266276f436
MD5 a2e88cfe04052041e37cf451cc95ff06
BLAKE2b-256 4fdc3633f412bf8d7df099a5088f6a97c0ebc6a343374657f3a93fef440ff1ef

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