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

Uploaded Python 3

File details

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

File metadata

  • Download URL: snapvc-1.0.0.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.0.tar.gz
Algorithm Hash digest
SHA256 52a125f9888e70a2b821e779503b5bb24fc9643ca62b1bb5ad69fe88939cd349
MD5 4079938fa2e08d9523993d94774732b6
BLAKE2b-256 d95767eee6c915be98b6cdda5695e5532eb2c5b420642c1196dbcf0e9e5591bb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: snapvc-1.0.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 faee8281d53bf6e3ea191a0e491ce1a344361134316429a5ae9e06d006ac4fd8
MD5 ca6dffbc38f8de1b489c5c906d869f5f
BLAKE2b-256 95c61c38b6e03d5e859f32d2d99040ba13aaf753f90b02e1953f9e23fc465969

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