snapvc


Namesnapvc JSON
Version 1.1.1 PyPI version JSON
download
home_pagehttps://github.com/ShreyashM17/Version-control
SummaryA lightweight version control system with cross-platform support
upload_time2025-07-25 11:37:41
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/ca/fa/b4fbebd3d96dc21c32bd98fa164d4b07b76dc6f0399438d66fc4102fb0ff/snapvc-1.1.1.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.1.1",
    "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": "9bed6fbd407fc86f7576e473f94f7f813a31fc4c934f86e390d8af9d37ff2a52",
                "md5": "f089b78fe160093eec23c37aca8de6ad",
                "sha256": "aa17175609b8c35897522c71df889876a99b3af54f725a4d4c97a4ffbe9532bf"
            },
            "downloads": -1,
            "filename": "snapvc-1.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f089b78fe160093eec23c37aca8de6ad",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 9484,
            "upload_time": "2025-07-25T11:37:40",
            "upload_time_iso_8601": "2025-07-25T11:37:40.103378Z",
            "url": "https://files.pythonhosted.org/packages/9b/ed/6fbd407fc86f7576e473f94f7f813a31fc4c934f86e390d8af9d37ff2a52/snapvc-1.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cafab4fbebd3d96dc21c32bd98fa164d4b07b76dc6f0399438d66fc4102fb0ff",
                "md5": "8ada31fb1ab61fca3b54954834b92173",
                "sha256": "1f3075af687c62b7cbeb59ffe8f93d0055d3641882b310d802934d73423dc2b4"
            },
            "downloads": -1,
            "filename": "snapvc-1.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "8ada31fb1ab61fca3b54954834b92173",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 9816,
            "upload_time": "2025-07-25T11:37:41",
            "upload_time_iso_8601": "2025-07-25T11:37:41.479444Z",
            "url": "https://files.pythonhosted.org/packages/ca/fa/b4fbebd3d96dc21c32bd98fa164d4b07b76dc6f0399438d66fc4102fb0ff/snapvc-1.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-25 11:37:41",
    "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: 0.47905s