A lightweight version control system with cross-platform support
Project description
SnapVC - Simple Version Control System
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
- License: MIT
- Author: Shreyash Mogaveera (@ShreyashM17)
Learn version control by building it! 🚀
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f80ad5552692e50d0a0e971ec76acb96e1b5568d9a8474a4254f5e641d8e741
|
|
| MD5 |
ee9c2f53c19ababe16eb06682a5d5a3f
|
|
| BLAKE2b-256 |
0c3b166f7fada531179f5e887dca6b6918523a105dd69e6b32d994595ec676b4
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
602620d536f70f0b0d4826abdebfbf1458c988e12b8321004ffad60c14dc6d44
|
|
| MD5 |
543ba33ea7bf955758ea2bf301cbefb7
|
|
| BLAKE2b-256 |
ad28edf5cda616fb1a6330a59bee34664914a689aebeda7b908e948bc0c74735
|