Skip to content

DebAxom/rino

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rino

Rino is a minimal snapshot-based versioning tool inspired by Git, designed for simplicity and speed.

No staging, no commits — just snapshots.

The Concept

Rino operates on the idea of alternate realities for your software.

  • Variants : These act like branches, allowing you to explore different development paths.

  • Snapshots : Instead of tracking incremental "diffs," Rino captures the entire state of your project.

  • No Merging : Currently, variants are independent tracks; merging is not supported in the current version.)

Usage Guide

Initialize a repository

rino init

Create a snapshot

# Example: rino snap main
rino snap variant

Rollback to a snapshot

rino use snapshotid

snapshotid is of form variant#version. You can use variant#latest for the latest version of the variant.

Delete a snapshot

rino delete snapshotid

Print all snapshots

rino list

Print the id of current Snapshot

rino current

Check version of Rino

rino -v

Workflow Tips

Since Rino doesn't force a linear timeline, you have total flexibility:

  • You can create a snapshot with variant feature starting from main.

  • After making several snapshots on feature, you can jump back to main and continue snapping there.

  • If a specific path doesn't work out, simply use the older version of main and keep moving forward.

Storage

Rino is designed for absolute state integrity, which influences how it handles data :

  • Heavy Snapshots : Every unique file is stored in .rino/objects. Even a minor change in a file results in the creation of a new object.

  • Maintenance : Because snapshots are heavier than traditional Git commits, you are encouraged to delete older snapshots regularly to save disk space.

  • Ignoring Files : Use a .rinoignore file (works exactly like .gitignore) to ensure temporary files or build artifacts aren't tracked.

Disclaimer

This is a Version 0 release. Rino is an evolving project; expect the developer experience (DX) and command structures to change significantly as the project progresses.

About

A snapshot based versioning system

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages