snapvc


Namesnapvc JSON
Version 1.2.0 PyPI version JSON
download
home_pagehttps://github.com/ShreyashM17/Version-control
SummaryA lightweight version control system with cross-platform support
upload_time2025-08-13 15:27:53
maintainerNone
docs_urlNone
authorShreyash Mogaveera
requires_python>=3.7
licenseMIT
keywords version-control vcs educational git snapshots cross-platform cli learning development-tools
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # SnapVC - Simple Version Control System

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python 3.7+](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/downloads/)
[![Cross-Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey)](https://github.com/ShreyashM17/Version-control)

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

```bash
# 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

```bash
# 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](https://github.com/ShreyashM17/Snapvc)

## 📝 License & Author

- **License**: MIT
- **Author**: Shreyash Mogaveera ([@ShreyashM17](https://github.com/ShreyashM17))

---

**Learn version control by building it! 🚀** 

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ShreyashM17/Version-control",
    "name": "snapvc",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "version-control, vcs, educational, git, snapshots, cross-platform, cli, learning, development-tools",
    "author": "Shreyash Mogaveera",
    "author_email": "shreyashmogaveera@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/8c/09/85e9b2a10449d17a9c47c837d466fb84408f7e8242d418682562ddacd018/snapvc-1.2.0.tar.gz",
    "platform": null,
    "description": "# SnapVC - Simple Version Control System\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Python 3.7+](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/downloads/)\n[![Cross-Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey)](https://github.com/ShreyashM17/Version-control)\n\nA lightweight, educational version control system with Git-like \"house\" branches, content-addressable storage, and cross-platform compatibility. Perfect for learning version control internals.\n\n## \ud83d\ude80 Quick Start\n\n```bash\n# Install\npip install snapvc\n\n# Initialize and create first snapshot\nsvcs init\necho \"Hello World\" > file.txt\nsvcs ready && svcs snapshot\n\n# Check status\nsvcs current  # Current version\nsvcs snaps    # Total snapshots\n```\n\n## \u2728 Key Features\n\n- **\ud83c\udfe0 House System**: Git-like branches for parallel development\n- **\ud83d\udcf8 Content-Addressable Storage**: SHA-256 hashing with automatic deduplication\n- **\ud83d\udddc\ufe0f Gzipped Storage**: Compressed snapshots for efficient disk usage\n- **\ud83c\udf0d Cross-Platform**: Windows, macOS, Linux support\n- **\ud83d\udcda Educational**: Learn version control internals hands-on\n- **\ud83d\udce6 Zero Dependencies**: Python standard library only\n\n## \ud83d\udcd6 Essential Commands\n\n| Command | Description |\n|---------|-------------|\n| `svcs init` | Initialize repository |\n| `svcs ready` | Stage files for snapshot |\n| `svcs snapshot` | Create versioned snapshot |\n| `svcs house new <name>` | Create new house (branch) |\n| `svcs house <name>` | Switch to house |\n| `svcs current` | Show current version |\n| `svcs revert <version>` | Restore to specific version |\n\n## \ud83c\udfe0 House System Example\n\n```bash\n# Create feature branch\nsvcs house new feature\necho \"new feature\" > feature.py\nsvcs ready && svcs snapshot\n\n# Switch back to main\nsvcs house main  # feature.py disappears\n\n# Switch to feature\nsvcs house feature  # feature.py reappears\n```\n\n## \ud83d\udd27 How It Works\n\n- **Staging**: Files prepared in \"ready\" area before snapshotting\n- **Hashing**: SHA-256 ensures integrity and enables deduplication\n- **Compression**: Gzipped storage for efficient disk usage\n- **Storage**: Content-addressable storage with automatic file sharing\n- **Houses**: Independent version histories with shared content pool\n\n```\n.svcs/\n\u251c\u2500\u2500 house.txt           # Current house\n\u251c\u2500\u2500 main/              # Default house\n\u2502   \u251c\u2500\u2500 data.json      # Version metadata\n\u2502   \u251c\u2500\u2500 ready/         # Staging area\n\u2502   \u2514\u2500\u2500 snapshot/      # Content by hash (gzipped)\n\u2514\u2500\u2500 feature/           # Other houses\n```\n\n## \ud83d\udca1 Perfect For\n\n- **Learning**: Understand Git-like systems internally\n- **Education**: Teaching version control concepts\n- **Small Projects**: Lightweight versioning without Git complexity\n- **Experimentation**: Try different workflows and branching strategies\n\n## \u26a0\ufe0f Requirements\n\n- Python 3.7+\n- Any OS (Windows, macOS, Linux)\n- No external dependencies\n\n## \ud83d\udcda Documentation\n\nFor detailed documentation, examples, and architecture details, visit:\n[https://github.com/ShreyashM17/SnapVC](https://github.com/ShreyashM17/Snapvc)\n\n## \ud83d\udcdd License & Author\n\n- **License**: MIT\n- **Author**: Shreyash Mogaveera ([@ShreyashM17](https://github.com/ShreyashM17))\n\n---\n\n**Learn version control by building it! \ud83d\ude80** \n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A lightweight version control system with cross-platform support",
    "version": "1.2.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/ShreyashM17/Version-control/issues",
        "Documentation": "https://github.com/ShreyashM17/Version-control#readme",
        "Homepage": "https://github.com/ShreyashM17/Version-control",
        "Source Code": "https://github.com/ShreyashM17/Version-control"
    },
    "split_keywords": [
        "version-control",
        " vcs",
        " educational",
        " git",
        " snapshots",
        " cross-platform",
        " cli",
        " learning",
        " development-tools"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "02fb5614de1ba2898606f18c5c74010a09062547d63a0a47c667216017a289f2",
                "md5": "d4839b374188edfe808a4b82b16db15b",
                "sha256": "72b1a4a3c94f273c4becbd543452d13cf4786316c27255b3b1f3e45454bb5a67"
            },
            "downloads": -1,
            "filename": "snapvc-1.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d4839b374188edfe808a4b82b16db15b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 9581,
            "upload_time": "2025-08-13T15:27:51",
            "upload_time_iso_8601": "2025-08-13T15:27:51.201351Z",
            "url": "https://files.pythonhosted.org/packages/02/fb/5614de1ba2898606f18c5c74010a09062547d63a0a47c667216017a289f2/snapvc-1.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8c0985e9b2a10449d17a9c47c837d466fb84408f7e8242d418682562ddacd018",
                "md5": "661ce989e514b261fdf10f2528e190db",
                "sha256": "1fcd4305e84944c79c8a2451b947eb6c49737c184b41f7eea91015878598a176"
            },
            "downloads": -1,
            "filename": "snapvc-1.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "661ce989e514b261fdf10f2528e190db",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 9879,
            "upload_time": "2025-08-13T15:27:53",
            "upload_time_iso_8601": "2025-08-13T15:27:53.121073Z",
            "url": "https://files.pythonhosted.org/packages/8c/09/85e9b2a10449d17a9c47c837d466fb84408f7e8242d418682562ddacd018/snapvc-1.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-13 15:27:53",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ShreyashM17",
    "github_project": "Version-control",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "snapvc"
}
        
Elapsed time: 1.78124s