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

Re: Git in Outreachy?

From
Taylor Blau <me@ttaylorr.com>
Date
Sep 10, 2020, 02:19 UTC
Message-ID
<20200910021916.GA503@nand.local>
In-Reply-To
<20200910013915.GD667601@google.com>
On Wed, Sep 09, 2020 at 06:39:15PM -0700, Jonathan Nieder wrote:
> Taylor Blau wrote:
> In other words: this isn't about changing how tests are executed ---
> it's about going from patches on list to git commits that can be
> tested.

Fair enough; it sounds like a Snowpatch-like tool might be useful for that case.

Show 8 quoted lines
> [...]
> >> - formats: on-disk reverse idx
> >
> > As a heads up, I think that I am going to start working on (an
> > alternative to) this myself,
>
> Neat!  I look forward to seeing what you build.  (Is this related to
> the bitmaps-using-midx-ordering work?)

You guessed it ;-). It's sort of a tricky issue: the pack-objects code needs to know things like the position of an object in index order so that it can look at the offset of the next object and determine its size.

But, in the multi-pack case, things aren't so simple. It would be nice if we could look at a bit position and say "you are at bit position N and there are M different packs before you, so I know what position you are within your pack", but this can't be done in general when you have duplicate objects among packs in your MIDX.

The MIDX is only going to choose one of them, and so you don't know how many "holes" are present before you. In my development version, I have a bitmap extension I'm calling the "rev-cache" which acts like a mapping between bit position and MIDX name order (which can then be used to look up auxiliary info like which pack an object came from, its position in the pack's index order, and so on).

But, having an on-disk mapping between objects and their position in different orderings will be useful not only for this, but for:

  - avoiding building a reverse index in memory from scratch (which can
    occupy quite a bit of the heap in some repositories that we see),
    and
  - dropping GitHub's custom "bit-cache" extension, which maps objects
    from name order to bit position.

Anyway, obviously not related to Outreachy, and obviously many more details to come once I have patches that are more mature, but I couldn't help myself in the meantime.

> Thanks,
> Jonathan
>
> >> [*] https://github.com/ruscur/snowpatch

Thanks, Taylor

Previous: Jonathan NiederNext: Christian Couder
Message 11 of 44 in “Git in Outreachy?”
  1. Jeff KingAug 28, 2020
  2. Christian CouderAug 31, 2020
  3. Jonathan NiederSep 3, 2020
  4. Philip OakleySep 4, 2020
  5. Johannes SchindelinSep 7, 2020
  6. Philip OakleySep 16, 2020
  7. Johannes SchindelinSep 16, 2020
  8. Philip OakleySep 17, 2020
  9. Taylor BlauSep 9, 2020
  10. Jonathan NiederSep 10, 2020
  11. Taylor BlauSep 10, 2020
  12. Christian CouderSep 16, 2020
  13. Christian CouderSep 16, 2020
  14. Junio C HamanoAug 31, 2020
  15. Emily ShafferAug 31, 2020
  16. Jeff KingSep 1, 2020
  17. Jeff KingSep 3, 2020
  18. Jeff KingSep 15, 2020
  19. Kaartic SivaraamSep 15, 2020
  20. Jeff KingSep 15, 2020
  21. Christian CouderSep 19, 2020
  22. Phillip WoodSep 19, 2020
  23. Christian CouderSep 16, 2020
  24. Johannes SchindelinSep 2, 2020
  25. Christian CouderSep 16, 2020
  26. Phillip WoodSep 16, 2020
  27. Christian CouderSep 17, 2020
  28. Phillip WoodSep 17, 2020
  29. Christian CouderSep 18, 2020
  30. Elijah NewrenSep 17, 2020
  31. Christian CouderSep 18, 2020
  32. Kaartic SivaraamSep 27, 2020
  33. Christian CouderSep 27, 2020
  34. Christian CouderOct 29, 2020
  35. Kaartic SivaraamSep 6, 2020
  36. Johannes SchindelinSep 7, 2020
  37. Christian CouderSep 16, 2020
  38. Johannes SchindelinSep 16, 2020
  39. Christian CouderSep 19, 2020
  40. Johannes SchindelinSep 20, 2020
  41. Kaartic SivaraamSep 20, 2020
  42. Christian CouderSep 21, 2020
  43. Kaartic SivaraamSep 21, 2020
  44. Shourya ShuklaSep 21, 2020

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.