scouten
Working on an all-Elixir implementation of git -- looking for co-contributors
Hi, I had the idea a few months ago that an all-Elixir implementation of git could be an interesting foundation for some future projects I’d like to build and also an interesting way to deeply learn the internals of git.
I’ve started this project as a port from jgit and have a fair amount of the core infrastructure ported. It’s far from ready for prime time, but I’m sharing this now in hopes of finding co-conspirators for this project.
If you are interested in contributing, the project – such as it is at the moment – is available as xgit on GitHub. Please reach out to me here or on GitHub.
Thanks!
-Eric
Most Liked
hauleth
Nice, but one suggestion:
Split that library and at first implement only libgit2 functionalities instead of whole CLI UI. It is more important to be able to work with the repo itself programmatically rather than using particular CLI commands (and that will be much easier to work that way).
scouten
From the erlangit README:
It is currently slower than a slow-motion replay of a cold-weather molasses drip-race judged by sloths who just took Nyquil. Slowly.
![]()
scouten
Split that library and at first implement only
libgit2functionalities instead of whole CLI UI.
This was essentially my goal, but apparently not stated clearly enough.
FWIW I’ve spoken privately with one of the lead authors of jgit and had a similar response: Given my stated goal of creating something that can be used for a git server and not a local workstation git client, time spent working on working tree operations (and likewise, any concurrent interop on disk with command-line git or jgit) is essentially wasted.
As I have time, I’ll be redirecting the project in that direction.
Thank you all for your feedback.
Last Post!
Popular in Discussions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #hex









