Skip to content

biscuitrescue/rsvcs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ¦€ rsvcs β€” A Minimal Version Control System in Rust

Rust License: MIT Build

A simplified Git-like version control system written from scratch in Rust.


πŸ“¦ Features

Command Description
rsvcs init Initialize a new repository (.mygit/)
rsvcs add <file> Stage a file for commit
rsvcs commit -m "" Commit staged files with a message
rsvcs log View commit history

πŸš€ Quick Start

πŸ“₯ Clone & Build

git clone https://github.com/yourusername/rsvcs.git
cd rsvcs
cargo build --release

πŸ§ͺ Example Usage

./target/release/rsvcs init
./target/release/rsvcs add hello.txt
./target/release/rsvcs commit -m "Initial commit"
./target/release/rsvcs log

πŸ“ File Structure

.mygit/
β”œβ”€β”€ commits/         # All committed objects, stored by hash
β”œβ”€β”€ objects/         # All file contents (blobs), stored by hash
β”œβ”€β”€ index            # Staging area
└── HEAD             # Points to latest commit hash

πŸ› Tech Stack

  • Rust
  • clap - CLI Argument parsing
  • serde - Serialisation for commits
  • shai - Content Hashing
  • chrono - Timestamps

πŸ“š Roadmap

  • refs - impl branch refs
  • object storage - git-like
  • status - staged vs modified files
  • checkout <hash> - restore old state
  • diff - show changes
  • branch and merge
  • .rsvcsignore support

✨ Contributing

Pull requests are welcome! If you'd like to:

  • Add new cmds.
  • Improve design
  • Refactor code

...feel free to fork and submit a PR.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages