Skip to main content

Robust Versioning System - Git-style version control built for universal compatibility

Project description

๐Ÿš€ RVS - Robust Versioning System

Python Version Version License Keywords

RVS (Robust Versioning System) brings Git-style version control to environments where traditional solutions fall short. Built entirely in Python, RVS trades execution speed for universal compatibility and deployment simplicity.

Built for Flexibility:

  • โœ… Functions in isolated environments (containers, embedded systems, restricted networks)
  • โœ… Zero dependency installation
  • โœ… Predictable behavior across all Python-supported platforms
  • โœ… Simplified deployment pipeline

Local-Centric Design: RVS concentrates on local repository management without remote connectivity features. This focused approach makes it ideal for:

  • Offline development workflows
  • Edge computing and IoT applications
  • Educational and training environments
  • Scenarios with network limitations or security constraints
  • Personal project archiving and backup systems

โœจ Features

  • ๐Ÿ”ง Complete Git-like Interface - Familiar commands and workflows
  • ๐Ÿ Self-Contained Architecture - Zero external dependencies required
  • ๐Ÿ“ฆ Universal Installation - Install via pip or run directly on any Python platform
  • ๐ŸŒณ Full Branching Support - Create, switch, and merge branches
  • ๐Ÿ“ Staging Area - Add and commit changes with precision
  • ๐Ÿ“š Commit History - View and navigate project history
  • ๐Ÿ”„ Advanced Operations - Rebase, stash, worktree management
  • ๐Ÿ› ๏ธ Extensible Architecture - Clean, modular codebase
  • ๐ŸŽฏ Local-First Design - Focused on local operations without remote dependencies

๐Ÿš€ Quick Start

Installation

From PyPI (Recommended)

# Install from PyPI
pip install rvs

From Source

# Clone the repository
git clone https://github.com/rvs-rvs/rvs.git
cd rvs

# Install using pip
pip install .

# Or install in development mode
pip install -e .

Basic Usage

# Initialize a new repository
rvs init

# Add files to staging area
rvs add file.txt
rvs add .

# Create a commit
rvs commit -m "Initial commit"

# Check repository status
rvs status

# View commit history
rvs log

๐Ÿ“‹ Available Commands

RVS supports all essential local Git operations:

Command Description Example
init Initialize a new repository rvs init
add Add files to staging area rvs add file.txt
commit Create a commit rvs commit -m "message"
status Show repository status rvs status
log Show commit history rvs log
branch List or create branches rvs branch feature
checkout Switch branches or restore files rvs checkout main
merge Join development histories rvs merge feature
rebase Reapply commits on another base rvs rebase main
restore Restore working tree files rvs restore file.txt
rm Remove files from index/working tree rvs rm file.txt
ls-files Show files in index and working tree rvs ls-files
ls-tree List contents of tree objects rvs ls-tree HEAD
worktree Manage multiple working trees rvs worktree add ../feature
stash Stash changes temporarily rvs stash

๐Ÿ’ก Usage Examples

Basic Workflow

# Start a new project
mkdir my-project && cd my-project
rvs init

# Add some files
echo "Hello World" > hello.txt
rvs add hello.txt
rvs commit -m "Add hello.txt"

# Create and switch to a new branch
rvs branch feature
rvs checkout feature

# Make changes and commit
echo "Feature code" > feature.txt
rvs add feature.txt
rvs commit -m "Add feature"

# Switch back and merge
rvs checkout main
rvs merge feature

Advanced Operations

# Stash uncommitted changes
rvs stash

# Work with multiple worktrees
rvs worktree add ../hotfix hotfix-branch

# Interactive rebase (reapply commits)
rvs rebase main

# Restore specific files from a commit
rvs restore --source=HEAD~1 file.txt

Repository Management

# Check what's staged and unstaged
rvs status

# View detailed commit history
rvs log --oneline

# List all files tracked by RVS
rvs ls-files

# Examine tree structure
rvs ls-tree HEAD

๐Ÿ—๏ธ Architecture

RVS is built with a robust, modular architecture designed for reliability and portability:

rvs/
โ”œโ”€โ”€ core/           # Core functionality
โ”‚   โ”œโ”€โ”€ repository.py   # Repository management
โ”‚   โ”œโ”€โ”€ objects.py      # Git object handling
โ”‚   โ”œโ”€โ”€ index.py        # Staging area
โ”‚   โ”œโ”€โ”€ refs.py         # Branch/tag references
โ”‚   โ””โ”€โ”€ hooks.py        # Hook system
โ”œโ”€โ”€ commands/       # Command implementations
โ”‚   โ”œโ”€โ”€ add.py          # Add command
โ”‚   โ”œโ”€โ”€ commit.py       # Commit command
โ”‚   โ”œโ”€โ”€ branch.py       # Branch operations
โ”‚   โ””โ”€โ”€ ...             # Other commands
โ”œโ”€โ”€ cli.py          # Command-line interface
โ””โ”€โ”€ exceptions.py   # Custom exceptions

๐Ÿ”ง Command Line Options

usage: rvs [-h] [--repo REPO] [--version] {command} ...

RVS - Robust Versioning System

positional arguments:
  {init,add,commit,status,log,branch,checkout,merge,rebase,restore,rm,ls-files,ls-tree,worktree,stash}
                        Available commands

options:
  -h, --help            Show help message and exit
  --repo REPO           Repository path (default: current directory)
  --version             Show program's version number and exit

๐Ÿค Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes and add tests
  4. Commit your changes (git commit -m 'Add amazing feature')
  5. Push to the branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

Development Setup

# Clone the repository
git clone https://github.com/rvs-rvs/rvs.git
cd rvs

# Install in development mode
pip install -e .

# Run tests (if available)
python -m pytest

# Run RVS directly
python -m rvs --help

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Inspired by Git's elegant design and powerful functionality
  • Built with Python's excellent standard library
  • Thanks to the open-source community for inspiration and feedback

๐Ÿ“ž Contact


โญ Star this repository if you find it useful! โญ

Made with โค๏ธ for robust, portable version control

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

rvs-2.0.1.tar.gz (40.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rvs-2.0.1-py3-none-any.whl (50.7 kB view details)

Uploaded Python 3

File details

Details for the file rvs-2.0.1.tar.gz.

File metadata

  • Download URL: rvs-2.0.1.tar.gz
  • Upload date:
  • Size: 40.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for rvs-2.0.1.tar.gz
Algorithm Hash digest
SHA256 4422f8c6f71c25e86e2e22fc52c1e44bf652188838aa00a8465625c748575a17
MD5 85b02057e15705ebc635691e3fa99ba2
BLAKE2b-256 7255bd27b7160ead7062f072a2c6fc63f67a9334314a62e55a0e34e4cb15440c

See more details on using hashes here.

File details

Details for the file rvs-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: rvs-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 50.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for rvs-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 37a73794e6ed72ce152aea66df21410272cd096a1f06a5901e3ad738ed48c2d8
MD5 c2b0923f5d85f9d38909b5aa0cd3c5b7
BLAKE2b-256 51eaebb1c2264a910fa2746e99f314cea81975f014f52df9f1f9b23e8e4d4498

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