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

[PATCH 0/7] commit-graph: split strategies, '--[no-]check-oids'

From
Taylor Blau <me@ttaylorr.com>
Date
Apr 14, 2020, 04:03 UTC
Message-ID
<cover.1586836700.git.me@ttaylorr.com>
Hi,

This is a reworked version of a couple of series [1, 2] that add various options to the 'git commit-graph write' builtin. I had developed [1, 2] while deploying incremental commit-graphs at GitHub, and so there was a lot in flux about what options we needed and so on.

Now that the dust has settled, I cleaned up all of the patches generated during that time into a grab-bag series that reflects what we ended up sticking with.

Namely, I got rid of the '--input=<source>' options ('--input=none' was confusing at best, and we ended up not needing it), as well as '--split=merge-all'. We used to use this to roll up all of the incremental graphs generated during pushes into one big length-1 chain every N pushes. But, we ended up abandoning this, too, in favor of '--split=replace', which is described in the fourth patch. I'm not sure if anyone will be sad to see '--split=merge-all' go, so if you are, please let me know and I'll drag that patch back in.

Thanks for all of the review that I've received so far, and thanks in advance for your review on these patches.

[1]: https://lore.kernel.org/git/cover.1580430057.git.me@ttaylorr.com/ [2]: https://lore.kernel.org/git/cover.1584762087.git.me@ttaylorr.com/

Taylor Blau (7):
  t/helper/test-read-graph.c: support commit-graph chains
  builtin/commit-graph.c: support for '--split[=<strategy>]'
  builtin/commit-graph.c: introduce split strategy 'no-merge'
  builtin/commit-graph.c: introduce split strategy 'replace'
  oidset: introduce 'oidset_size'
  commit-graph.h: replace 'commit_hex' with 'commits'
  commit-graph.c: introduce '--[no-]check-oids'
 Documentation/git-commit-graph.txt |  22 +++--
 builtin/commit-graph.c             |  59 +++++++++++--
 commit-graph.c                     | 129 +++++++++++++++++++----------
 commit-graph.h                     |  10 ++-
 oidset.c                           |   5 ++
 oidset.h                           |   5 ++
 t/helper/test-read-graph.c         |  13 +--
 t/t5318-commit-graph.sh            |  30 ++++++-
 t/t5324-split-commit-graph.sh      |  30 +++++++
 9 files changed, 230 insertions(+), 73 deletions(-)

-- 2.26.0.106.g9fadedd637

Next: Taylor Blau
Message 1 of 19 in “commit-graph: split strategies, '--[no-]check-oids'”
  1. 0/7 commit-graph: split strategies, '--[no-]check-oids'Taylor Blau, Apr 14, 2020
  2. 1/7 t/helper/test-read-graph.c: support commit-graph chainsTaylor Blau, Apr 14, 2020
  3. 2/7 builtin/commit-graph.c: support for '--split[=<strategy>]'Taylor Blau, Apr 14, 2020
  4. 3/7 builtin/commit-graph.c: introduce split strategy 'no-merge'Taylor Blau, Apr 14, 2020
  5. 4/7 builtin/commit-graph.c: introduce split strategy 'replace'Taylor Blau, Apr 14, 2020
  6. 5/7 oidset: introduce 'oidset_size'Taylor Blau, Apr 14, 2020
  7. 6/7 commit-graph.h: replace 'commit_hex' with 'commits'Taylor Blau, Apr 14, 2020
  8. 7/7 commit-graph.c: introduce '--[no-]check-oids'Taylor Blau, Apr 14, 2020
  9. Taylor BlauApr 15, 2020
  10. Taylor BlauApr 15, 2020
  11. SZEDER GáborApr 22, 2020
  12. Taylor BlauApr 22, 2020
  13. SZEDER GáborApr 24, 2020
  14. Taylor BlauMay 1, 2020
  15. Jeff KingMay 3, 2020
  16. Junio C HamanoMay 3, 2020
  17. Jeff KingMay 4, 2020
  18. Junio C HamanoMay 4, 2020
  19. Taylor BlauMay 4, 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.