Skip to main content

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
  • 🗜️ Gzipped Storage: Compressed snapshots for efficient disk usage
  • 🌍 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
  • Compression: Gzipped storage for efficient disk usage
  • 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 (gzipped)
└── 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/SnapVC

📝 License & Author


Learn version control by building it! 🚀

Metadata

Release files for snapvc 1.2.1

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

Source distribution (sdist)

Source distribution for snapvc 1.2.1
File Size Uploaded
snapvc-1.2.1.tar.gz 10.3 kB Details

Built distribution (wheel)

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

Total release size: 20.4 kB

Release files / snapvc-1.2.1.tar.gz

Download URL snapvc-1.2.1.tar.gz
Size 10.3 kB
Tags Source
SHA-256 checksum
How to use checksums
a65a0428297b886bbe679302095bf9a402fb79d1a2a0aad33d89d80a7d6c3754
BLAKE2b-256 checksum
How to use checksums
090f7f4f304cd9b4f708229d0c736338f70fa6d37cf3dc24f580eb7699925f8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / snapvc-1.2.1-py3-none-any.whl

Download URL snapvc-1.2.1-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
26edde322077897ae754783e8585ad25fef77a27bd649cb558d8a948fc23ae0f
BLAKE2b-256 checksum
How to use checksums
f9018064cf8f73c5c81a6192b8abdac3edfd60ea47d350363c22163b0c5b4e62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

1.2.1 This release

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

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