{"thread":{"id":"30774","subject":"[GSoC] Designing a faster index format - Progress Report week 8","startedAt":"2012-06-11T20:53:12Z","lastAt":"2012-06-15T13:39:45Z","messageCount":2,"participants":["Thomas Gummerer","Thomas Rast"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"193379","messageId":"20120611205312.GB18686@tgummerer","threadId":"30774","inReplyTo":null,"subject":"[GSoC] Designing a faster index format - Progress Report week 8","fromName":"Thomas Gummerer","fromEmail":"t.gummerer@gmail.com","sentAt":"2012-06-11T20:53:12Z","receivedAt":"2012-06-11T20:53:12Z","isPatch":false,"sender":{"key":"t.gummerer@gmail.com","avatar":"https://avatars.githubusercontent.com/u/191004?v=4"},"body":"\n== Work done in the previous 7 weeks ==\n\n- Definition of a tentative index file v5 format [1]. This differs\n  from the proposal in making it possible to bisect the directory\n  entries and file entries, to do a binary search. The exact bits\n  for each section were also defined. To further compress the index,\n  along with prefix compression, the stat data is hashed, since\n  it's only used for comparison, but the plain data is never used.\n  Thanks to Michael Haggerty, Nguyen Thai Ngoc Duy, Thomas Rast\n  and Robin Rosenberg for feedback.\n- Prototype of a converter from the index format v2/v3 to the index\n  format v5. [2] The converter reads the index from a git repository,\n  can output parts of the index (header, index entries as in\n  git ls-files --debug, cache tree as in test-dump-cache-tree, or\n  the reuc data). Then it writes the v5 index file format to\n  .git/index-v5. Thanks to Michael Haggerty for the code review.\n- Prototype of a reader for the new index file format. [3] The\n  reader has mainly the purpose to show the algorithm used to read\n  the index lexicographically sorted after the full name which is\n  required by the current internal memory format. Big thanks for\n  reviewing this code and giving me advice on refactoring goes\n  to Michael Haggerty.\n- Read the index format format and translate it to the current in\n  memory format. This doesn't include reading any of the current\n  extensions, which are now part of the main index. The code again\n  is on github. [4] Thanks for reviewing the first steps to Thomas\n  Rast.\n\n== Work done in the last week ==\n\n- Read the cache-tree data from the new ondisk format. Same as the\n  reading algorithm, this algorithm can (and will) still be optimized.\n- Started implementing the API, but it's still in the very early\n  stages.\n\n== Outlook for the next week ==\n\n- Continue implementing the API as discussed on [5].\n\n[1] https://github.com/tgummerer/git/wiki/Index-file-format-v5\n[2] https://github.com/tgummerer/git/blob/pythonprototype/git-convert-index.py\n[3] https://github.com/tgummerer/git/blob/pythonprototype/git-read-index-v5.py\n[4] https://github.com/tgummerer/git/tree/index-v5\n[5] http://thread.gmane.org/gmane.comp.version-control.git/198283/focus=198474\n"},{"id":"193694","messageId":"878vfo1you.fsf@thomas.inf.ethz.ch","threadId":"30774","inReplyTo":"20120611205312.GB18686@tgummerer","subject":"Re: [GSoC] Designing a faster index format - Progress Report week 8","fromName":"Thomas Rast","fromEmail":"trast@student.ethz.ch","sentAt":"2012-06-15T13:39:45Z","receivedAt":"2012-06-15T13:39:45Z","isPatch":false,"sender":{"key":"tr@thomasrast.ch","avatar":"https://avatars.githubusercontent.com/u/153510?v=4"},"body":"Thomas Gummerer <t.gummerer@gmail.com> writes:\n\n> == Outlook for the next week ==\n>\n> - Continue implementing the API as discussed on [5].\n>\n> [5] http://thread.gmane.org/gmane.comp.version-control.git/198283/focus=198474\n\nSorry for being rather slow this week!  I still intend to do another\nreview of the github code RSN, however I felt I should point out some\nmore IRC conclusions to the list.\n\nI talked Thomas out of going forward with the API as the next step, and\ninstead work towards having a writer side for the current format.\n\nThis should have some benefits:\n\n* The code becomes more easily testable, and hopefully able to run the\n  test suite.\n\n* Spelling the writer in code should shake down any unforeseen\n  deficiencies of the format.\n\n  Until update-index or similar learn to use the partial writing\n  facilities, we should have a little extra tool here that allows poking\n  at a single entry for testing.\n\n* The API will need to have an updating and a writing side, and what\n  that should look like will become clearer.\n\nThat does mean that the API-demo in git-ls-files (suggested by Duy) will\nlikely have to wait until after midterms.\n\n-- \nThomas Rast\ntrast@{inf,student}.ethz.ch\n"}]}