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

Re: About GIT Internals

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 3, 2022, 17:15 UTC
Message-ID
<xmqqk09xhdma.fsf@gitster.g>
In-Reply-To
<CAJoAoZmPOOp41KF=V4EhUopu+P8=UW55bkUJm6ZYiKziprtWug@mail.gmail.com>
Emily Shaffer <emilyshaffer@google.com> writes:
>> 3. Would someone advise, perhaps, to have a look at an older version
>> of the source code? rather than the latest one, for some reason.

For those who want to learn from source files, I would recommend reading all the files in the very initial commit, cover to cover.

e83c5163 (Initial revision of "git", the information manager from hell, 2005-04-07)

With only 1244 lines spread across 11 files, it is a short-read that is completable in a single sitting for those who are reasonably fluent in C. It does not have any frills, but the basic data structures to express the important concepts are already there.

Previous: Emily ShafferNext: Konstantin Khomoutov
Message 13 of 17 in “About GIT Internals”
  1. AmanMay 25, 2022
  2. Emily ShafferMay 25, 2022
  3. Erik Cervin EdinMay 25, 2022
  4. git-vger@eldondev.comMay 25, 2022
  5. Philip OakleyMay 26, 2022
  6. Konstantin KhomoutovMay 26, 2022
  7. Philip OakleyMay 27, 2022
  8. Kerry, RichardMay 30, 2022
  9. Konstantin KhomoutovMay 30, 2022
  10. Ævar Arnfjörð BjarmasonMay 30, 2022
  11. AmanJun 3, 2022
  12. Emily ShafferJun 3, 2022
  13. Junio C HamanoJun 3, 2022
  14. Konstantin KhomoutovJun 3, 2022
  15. AmanJun 4, 2022
  16. Konstantin KhomoutovJun 6, 2022
  17. Philip OakleyMay 27, 2022

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.