| ▲ | MBCook 17 hours ago | |||||||
Isn’t git already just an interface over libgit? How is that different? | ||||||||
| ▲ | tredre3 17 hours ago | parent | next [-] | |||||||
Git is famously not built around a (reusable) library, hence why we have things like libgit2 (unrelated to git) and why any porcelain on top of git has to resort to calling the binary and parsing its text output. | ||||||||
| ||||||||
| ▲ | schacon 15 hours ago | parent | prev [-] | |||||||
libgit.a isn't reentrant. It will call `die()` on many errors. If you link to it in a long running binary, it will kill your process on error. Libgit2 is meant to address this and I was heavily involved in the development of that project 15 years ago. It's great but it's not feature complete and it's development is also completely separate from git development, so it's out of sync and constantly struggling to keep up. | ||||||||