https://github.com/benyakirten/not-git
Getting some experience with low-level programming, Rust and Git.
https://github.com/benyakirten/not-git
git rust
Last synced: about 2 months ago
JSON representation
Getting some experience with low-level programming, Rust and Git.
- Host: GitHub
- URL: https://github.com/benyakirten/not-git
- Owner: benyakirten
- License: mit
- Created: 2024-03-11T21:28:26.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-02T02:45:13.000Z (over 2 years ago)
- Last Synced: 2025-04-12T18:51:44.368Z (about 1 year ago)
- Topics: git, rust
- Language: Rust
- Homepage:
- Size: 82 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# What am I looking at?
Based off of the [CodeCrafters Build your own Git](https://app.codecrafters.io/courses/git/overview) challenge, this is an implementation of a few of Git's more basic properties. I did this because I typically have worked mostly on web-based projects, and I wanted to try something different. Not only that, but I got some practice with Rust and have got much more experience with bitwise operators (which almost never come up in JavaScript-related technologies). I made the following additions and changes:
1. Add CI/tests of my own (TODO).
1. Add documentation (TODO).
1. Change the app from CLI-based to a library (TODO).
1. Add refs, including the `update-refs` plumbing command, and the `branch`, `commit` and `checkout` porcelain commands.
I have no current plans to complete functionality much beyond what is currently available. Unfortunately, I have to choose where I invest my time. While I would enjoy finishing every command and adding some additions of my own, there's no way I would have the time to do so.
# Can I use the library?
I doubt that the library will be of any use to you. That said, you can learn some of the basics of how git works in terms of encoding, how files are stored and how packfiles work.
# Future Additions
Beside the additions marked as TODO in the top section:
1. Fix branch discovery, especially remote branches that may not have been downloaded.