6 ms·
Ugit - DIY Git in Python
- iheredia 5y agoAnyone knows of similar projects in another languages? I've been wanting to understand some important tools (like git in this case) and also learn some languages I've been pushing back. Would love to find more of these
- rohitpaulk 5y agoThere's a long list here: https://github.com/danistefanovic/build-your-own-x https://github.com/danistefanovic/build-your-own-x. Also, https://codecrafters.io/challenges/git https://codecrafters.io/challenges/git supports multiple languages (I'm the author). Many folks that try this challenge do it for the same reason you mentioned: to learn about a tool and learn a new language at the same time.
- sc4ramouche 5y agoI was thinking the same and found the book that teaches to build Git in Ruby, although I haven’t checked it out yet: https://shop.jcoglan.com/building-git/ https://shop.jcoglan.com/building-git/
- iudqnolq 5y agoI followed along to that book in Rust and found it excellent.
- egeozcan 5y agoExactly, Typescript or C# would have been very nice. edit: found some for JS, not TS but still something: http://gitlet.maryrosecook.com/docs/gitlet.html http://gitlet.maryrosecook.com/docs/gitlet.html https://kushagra.dev/blog/build-git-learn-git/ https://kushagra.dev/blog/build-git-learn-git/
- turminal 5y agoThere's https://git.sr.ht/~sircmpwn/shit https://git.sr.ht/~sircmpwn/shit, written in posix sh. It doesn't implement any of the porcelain though.
- ori_b 5y agoThe OpenBSD people are working on Game of Trees: http://gameoftrees.org/ http://gameoftrees.org/ And I wrote the one that 9front uses, which is self hosting (client, server, and web ui all run off it): http://shithub.us/ori/git9/HEAD/f.html http://shithub.us/ori/git9/HEAD/f.html
- JoshTriplett 5y agoFor Rust, see https://github.com/Byron/gitoxide https://github.com/Byron/gitoxide , which provides both a pure Rust library and a command-line tool built atop that library.
- fiddlerwoaroof 5y agoI’ve been slowly working on implementing git in Common Lisp: https://github.com/fiddlerwoaroof/cl-git https://github.com/fiddlerwoaroof/cl-git I think I have most of the object type parsers done for loose objects and pack files, just need to finish implementing the delta ref decoding algorithm.
- JonathanBeuys 5y agoWow, that is a beautiful interface. I mean the website itself. How is it made?
- deleted 5y ago[deleted]
- toinbis 5y agoEarlier(2020-09) HN submission with discussion on same project: https://news.ycombinator.com/item?id=24517925 https://news.ycombinator.com/item?id=24517925.
- arafatamim 5y agoThere isn't a table of contents for the website? I haven't been able to find one.
- jonatron 5y agoYou could take the titles from these: https://www.leshenko.net/p/ugit/commits/0_ea7001173eca.json https://www.leshenko.net/p/ugit/commits/0_ea7001173eca.json https://www.leshenko.net/p/ugit/commits/10_ad7b545d89c5.json https://www.leshenko.net/p/ugit/commits/10_ad7b545d89c5.json https://www.leshenko.net/p/ugit/commits/20_b9fc219d64aa.json https://www.leshenko.net/p/ugit/commits/20_b9fc219d64aa.json https://www.leshenko.net/p/ugit/commits/30_edbc10cf00d3.json https://www.leshenko.net/p/ugit/commits/30_edbc10cf00d3.json https://www.leshenko.net/p/ugit/commits/40_cbfd5156051c.json https://www.leshenko.net/p/ugit/commits/40_cbfd5156051c.json https://www.leshenko.net/p/ugit/commits/50_56ed4b981991.json https://www.leshenko.net/p/ugit/commits/50_56ed4b981991.json https://www.leshenko.net/p/ugit/commits/60_4592eac2f135.json https://www.leshenko.net/p/ugit/commits/60_4592eac2f135.json
- xonix 5y agoGit in Awk: https://github.com/djanderson/aho https://github.com/djanderson/aho
- mixedmath 5y agoI particularly like the iterated development approach to teaching on this site. That is, one starts with some minimal working code, states a goal, and then modifies the code to accomplish that goal --- repeatedly. This is a very powerful way to go through a codebase (when it is possible).
- otheracc 5y ago> f'{GIT_DIR}/objects' Never seen a writing style like that. How is it called? I want to read some documentation and history.
- mixmastamyk 5y agoSting interpolation, aka f-string, pep 498. Uses the .format mini-language plus expressions. Python 3.6+
- mixmastamyk 5y ago^string of course.
- otheracc 5y agoThanks a lot, I'll check it out!