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.
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
- 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
cargo build --releasetv init # Initialize without signing
tv init --sign my.key # Initialize with SSH key signingtv statustv commit --message "Your commit message"tv log # Show last 10 commits
tv log --count 50 # Show last 50 commitstv branch # List branches
tv branch --create myfeature # Create a new branch
tv branch myfeature # Switch to a branchtv merge myfeature # Merge myfeature into current branchtv rollback # Rollback to previous commit
tv rollback --no-verify # Rollback without signature verificationtv 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 myremotemain.rs- CLI interface and command handlersrepo.rs- Core repository managementcommit.rs- Commit data structures and operationshash.rs- SHA-512 hashing utilitiesdelta.rs- Differential file change trackinggit.rs- Git integration utilities
See LICENSE file for details.