Skip to content
This repository was archived by the owner on Jan 25, 2026. It is now read-only.
/ tv Public archive

Experimental VCS software.

License

Notifications You must be signed in to change notification settings

trshbn/tv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tiny Versions (TV)

A minimal local-only version control system written in Rust.

Warning

This is an experimental project and should NOT be used in production. It was created for educational and exploratory purposes only. Use Git or other mature version control systems for any real work.

Overview

TV is a lightweight version control system that implements core VCS functionality including:

  • Repository initialization with optional SSH key signing
  • Commits with SHA-512 hashing and optional cryptographic signatures
  • Branching & merging with delta-based change tracking
  • Rollback to previous commits with signature verification
  • Remote management for multi-location workflows
  • Push/Pull operations for remote synchronization

Features

  • Minimal design: No external dependencies beyond serialization and hashing
  • Local-only: All operations are file-based and local to the repository
  • Delta compression: Efficient change tracking using diff-based storage
  • Commit signing: Optional SSH key-based commit signatures
  • Branch support: Create, list, and switch between branches
  • Merge capability: Merge branches into the current branch
  • Remote support: Add, remove, and manage remote repositories

Building

cargo build --release

Usage

Initialize a repository

tv init                    # Initialize without signing
tv init --sign my.key      # Initialize with SSH key signing

Check status

tv status

Commit changes

tv commit --message "Your commit message"

View history

tv log                     # Show last 10 commits
tv log --count 50          # Show last 50 commits

Manage branches

tv branch                  # List branches
tv branch --create myfeature  # Create a new branch
tv branch myfeature        # Switch to a branch

Merge branches

tv merge myfeature         # Merge myfeature into current branch

Rollback

tv rollback                # Rollback to previous commit
tv rollback --no-verify    # Rollback without signature verification

Remote management

tv remote add myremote https://example.com/repo.git
tv remote list
tv remote get myremote
tv remote rm myremote
tv push --remote myremote
tv pull --remote myremote

Project Structure

  • main.rs - CLI interface and command handlers
  • repo.rs - Core repository management
  • commit.rs - Commit data structures and operations
  • hash.rs - SHA-512 hashing utilities
  • delta.rs - Differential file change tracking
  • git.rs - Git integration utilities

License

See LICENSE file for details.

About

Experimental VCS software.

Resources

License

Stars

Watchers

Forks