git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: linking libgit.a in C++ projects

From
Dmitry Potapov <dpotapov@gmail.com>
Date
Jul 31, 2008, 14:44 UTC
Message-ID
<20080731144424.GH7008@dpotapov.dyndns.org>
In-Reply-To
<4891B872.3040707@panasas.com>
On Thu, Jul 31, 2008 at 04:04:50PM +0300, Boaz Harrosh wrote:
Show 6 quoted lines
> 
> Produce a C file and header that defines some stable API to your
> GUI application, that does not expose any git internal headers.
> Then compile that, say git_api.c, with C compiler in Makefile
> and extern "C" link that file to your C++ application. This will
> completely insulate you from any git code.

While the idea of creating of such a wrapper makes sense, it may not easy to implement properly in all cases, because some git functions do not free allocated memory as they rely on this memory being free at exit. There is a problem with die() as it is not enough to longjmp from it, you have to free all resources that were allocated (such as open files, memory). Thus writing a full functional library, which will not leak resources, is not an easy task. Of course, some of Git function can be used easily without risk that your application will leak resources.

Dmitry
Previous: Boaz HarroshNext: Alex Riesen
Message 21 of 26 in “linking libgit.a in C++ projects”
  1. cteJul 31, 2008
  2. Dmitry PotapovJul 31, 2008
  3. cteJul 31, 2008
  4. Pedro MeloJul 31, 2008
  5. Petr BaudisJul 31, 2008
  6. cteJul 31, 2008
  7. Sverre RabbelierJul 31, 2008
  8. cteJul 31, 2008
  9. Sverre RabbelierJul 31, 2008
  10. Shawn O. PearceJul 31, 2008
  11. Sverre RabbelierJul 31, 2008
  12. Steve FrécinauxAug 4, 2008
  13. cteAug 1, 2008
  14. Linus TorvaldsAug 1, 2008
  15. cteAug 1, 2008
  16. Dmitry PotapovJul 31, 2008
  17. Petr BaudisJul 31, 2008
  18. cteJul 31, 2008
  19. Dmitry PotapovJul 31, 2008
  20. Boaz HarroshJul 31, 2008
  21. Dmitry PotapovJul 31, 2008
  22. Alex RiesenJul 31, 2008
  23. Avery PennarunJul 31, 2008
  24. Alex RiesenAug 3, 2008
  25. Boaz HarroshAug 4, 2008
  26. cteJul 31, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.