A simplified Git-like version control system written from scratch in Rust.
| 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 |
git clone https://github.com/yourusername/rsvcs.git
cd rsvcs
cargo build --release./target/release/rsvcs init
./target/release/rsvcs add hello.txt
./target/release/rsvcs commit -m "Initial commit"
./target/release/rsvcs log.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
- Rust
- clap - CLI Argument parsing
- serde - Serialisation for commits
- shai - Content Hashing
- chrono - Timestamps
-
refs- impl branch refs -
object storage- git-like -
status- staged vs modified files -
checkout <hash>- restore old state -
diff- show changes -
branchandmerge -
.rsvcsignoresupport
Pull requests are welcome! If you'd like to:
- Add new cmds.
- Improve design
- Refactor code
...feel free to fork and submit a PR.